Architecture

Our design.

Flow Diagram

Flow Chart

System Diagram

System Diagram

User Stories

As a student, I would like to sign up using my verified GW email to use this platform, so that I can have access to BookCycle.

As a student, I would like to donate my old textbooks on this platform, so that I can help another student in need.

As a student, I would like to enter my courses, so that I can be matched with textbooks based on the courses I am taking.

As a student, I would like to report my financial aid status, so that I can be matched with textbooks based on my need.

As a student, I would like to request a book after being matched, so that I am able to exchange them.

As a student, I would like to set the dates, times, and places I am available to receive the textbook I am requesting from another student.

As a student, I would like to agree on what dates, times, and locations I can exchange the textbooks with the student I am giving the book to.

As a student, I would like to meet with another student after agreeing on a time, location, and date, so that I can use my textbook.

As a student, I would like to view more information on the courses and textbooks I need, so that I can see if there is a book available to exchange, buy cheaper, or find out more information on.

Matching Algorithm

Matching Alg

Our matching algorithm is developed based on the Weighted Bipartite algorithm with the following steps:

  1. Create a bipartite graph with two sets: Student set and Textbook set.
  2. Construct edges between students and books they need
  3. Incorporate constraints to calculate the cost matrix values/edge weights considering the amount textbooks a person has already received and the financial need of each person:
  4. •  Assigns a higher cost to people who have received more textbooks, making it less likely they will be assigned additional textbooks.

    •  Assign lower costs to those with higher needs, increasing the likelihood that they will be assigned textbooks.

  5. Each column (Textbook) is assigned to the row (Student) with the lowest cost
  6. Edge weights are altered after a student is assigned a book