Bookfair (Textbook Exchange)

2020
https://bookfairatuva.com


Summary

Developed as a group project in CS 3240 (Advanced Software Development) at UVA, VA Text is a full featured exchange that we received funding for, including buying, selling, messaging, escrow, search and a complete database of all textbooks used in a semester. The project was created using Django as the backend framework and Bootstrap as the frontend framework. We also used many 3rd party API's such as PayPal Payments, Twilio Chat, Cloudinary (for uploading user textbook images) and ISBNdb (to gather more information about the books used in a year).

The project code was hosted on GitHub so we could collaborate as a team and we used Travis-CI for continuous integration. The server was hosted on Heroku and we used PostgreSQL for the database backend. We had a pipeline on Heroku set up so we could have a test server in addition to a development server. The website is fully responsive and performs well on mobile devices.

In the project, we followed a Scrum development pattern with biweekly stand-up meetings and everyone having specific roles in the group in addition to coding. My role was DevOps, and I set up the Travis-CI and Heroku integrations and made sure that everything went smoothly as well as assisting teammates transition when breaking changes were introduced.

After the semester ended, we decided to continue working on the project, applying for funds from various avenues. We eventually received $1000 from the UVA Parents Fund to bring the exchange to market so UVA students can benefit from it. We hope to launch Fall 2020.


Technology Used

Django - Web Framework

PostgreSQL - Database

Bootstrap - Front-end Web Framework

Heroku - Web Server

PayPal - Payment Processing

Travis-CI - Continuous Integration Testing

Twilio - User Messaging


Screenshots

The landing page for UVA TextEx

A sample textbook listing page

The cart page showcasing PayPal checkout

The receipt shown to the user after a successful checkout

The account page showing a user's current listings

Sample messages between two users deciding when and where to meet

A user going through the selling process


← Back