A common problem for Dartmouth students is unused meal swipes at the end of the week or unused DBA by the end of the term. In most cases, the swipes simply go unused and the DBA is either spent hurriedly at KAF or, as with the swipes, remain unused. This is a wasteful phenomenon. Students are not making full use of their meal plans, and some are buying food just for the purpose of spending swipes and DBA.

The reverse is also a common occurrence. It is not unusual to see students begging their friends for extra DBA at the end of the term or, albeit less commonly, for extra swipes at the end of a week. In most cases, students end up going negative in DBA, incurring additional costs beyond their meal plan. Given that some students have an excess of swipes and DBA, and that others have a demand for them, a logical solution is to create a way for these students to communicate with each other and exchange swipes and DBA.

To alleviate these problems, we have created dbshare, an online platform where Dartmouth students can sell and buy swipes or DBA. Students who have more than they need can sell.

What it does

In short, dbshare creates a way for students to sell and buy swipes or DBA, thus eliminating meal plan waste and giving students a better way to acquire more meal swipes.

The goal of dbshare is to create an easy and incentivized way for students to sell swipes and for students to buy them. dbshare presents a centralized platform where all listings to sell swipes/DBA are located, making it easy for listings to be discovered and completed. In addition, students are motivated to use dbshare because they can earn money from unused swipes; students are also motivated to buy because the selling price for swipes will end up lower than the actual value of the swipe, giving them the ability to save money.

When a potential buyer goes to dbshare, he or she can create a request detailing the type of swipe needed (lunch swipe, dinner swipe, etc.), where he or she wants to spend this swipe (e.g. FoCo or Hop), and a purchase price. Potential sellers can go to dbshare and see a full list of these requests and choose to accept them. Once a request is accepted, it is removed from the overall list, and the transaction then becomes a private communication between buyer and seller.

Note that dbshare does not facilitate an automatic transfer of swipes from one student's account to another's. The process of adding and removing swipes and DBA from a student's account is facilitated by DDS and the College. However, what dbshare does do is to create an incentive, as mentioned above, for a student selling a swipe to be physically present with the buying student when the swipe is used.

How we built it

We used HTML, CSS, Bootstrap, Node.js, Handlebars.js, and Express.js for the front end, and MongoDB for the back end.

Challenges we ran into

One challenge we ran into was incorporating the Venmo API into dbshare so students can make transactions through this popular third-party application. Unfortunately, Venmo has recently stopped allowing new users to use its API, and the workarounds we have found require information that we cannot easily access, such as a Venmo user's UserId.

Another challenge that we ran into is implementing the notification system for buying and selling, discussed below in next steps. In order to access the information we need, we have to log in to the GET funds website using a student's Dartmouth credentials. We can get the credentials by having a student use them to sign in to dbshare, but the problem we ran into is when attempting to fill out the GET funds login page automatically with these stored credentials. In our attempts, we cannot manage an automatic login, as this is apparently a possible security concern. Thus, the best we can currently do is automatically fill out the login fields and have the user click the actual submit button on the webpage.

Accomplishments that we're proud of

We have implemented signing up for and logging in to dbshare. In addition, we have created the ability for students to create offers, with fields specifying type of swipe, location, and price. We also have created the list of requests, as well as the option to accept individual requests for transaction. Finally, we have implemented a backend using mongoDB that stores a user's name, login information, and requests. We are proud that we were able to implement a web page from scratch within this short period of time, maintaining code integrity while including CSS to add aesthetics to our product.

What we learned

We have learned some of the limitations of web crawling, such as not being able to automatically fill in and submit login forms. We have also reinforced and improved upon our knowledge of HTML, CSS, node.js, and mongoDB.

What's next for dbshare

Currently, dbshare is simply a website where students can make listings for meal swipe/DBA offers. We believe the next step for dbshare is to integrate a notification system that prompts students who are running low on meal swipes and DBA to consider buying and for student who have an abundance to consider selling. Such a system would not only help students with managing their meal plan spending but also increase usage of dbshare. We would accomplish this by periodically crawling a student's GET funds page, where information including DBA amounts and meal swipes left can be found, and comparing these values against a buy/sell threshold that changes depending on the day of week or week of term. For example, a student who has the SmartChoice20 plan and still has 9 meal swipes left on Saturday would be encouraged to sell extra swipes, and a student who has -$20 DBA during week 9 would be encouraged to buy extra DBA. The specific thresholds for each meal plan can be calculated on a linearly sliding scale, or could be modified based on previous spending habits (i.e. a student on the SmartChoice5 who habitually spends swipe on the weekends would not be prompted to sell swipes during weekdays).

Another next step for dbshare is to integrate payment using DASH for meal swipes and DBA. Many students would prefer to pay with DASH since they have already discretionary spending allocated for items like laundry. In addition, paying with DASH does not require a student to give additional login information, such as user information for Venmo or Paypal. Adding this option will provide additional convenience and security to the student. One foreseeable obstacle with this step is asking the College to agree to such a payment method.

Share this project: