Our idea was a peer group money pool manager, for uses like fantasy league pools or splitting the Spotify bill.
Functions
We wanted functionality for notifying users how much they owe, but not for the transaction (which would be handled by a 3rd party like Venmo). Users would be able to create an account, create a pool, add members to the pool, set a target fund, edit the payout structure (like what proportion goes to 1st), and see how much debt they owed.
How we built it
We wanted a mobile app that interfaced with a server to store data. We used the Google Cloud Platform to host a VM instance, and hosted a Django development server with a MySQL database installed. The mobile app was developed in Xcode using Swift. The main components of the Django framework were the views (which handled HTTP requests/urls, returns JSON/HTML), the manager (functions), and the model (the database).
The work
The model was relatively straightforward, using 3 tables, for users, pools, and memberships (user-pool relations). The login/authentication were tricky, but Adam figured it out. The webpages were nicely done. The views had lots of annoying behavior that needed workarounds. The mobile frontend went smoothly. In the end we were unable to have the server and app communicate with each other.
Challenges we ran into
We ran into problems with installing Django on an Apache2 production server - one alternative is nginx Django runserver requires some strange mysql dependencies - notice each user doesn't share modules Finding a model field that supports dynamically resizable lists Pool creation form didn't transfer members to the pool object - unecessarily difficult getting form.cleaned_data into the field Listing pools that one was a member but not admin of - since we didn't want to add a decorator to the default user model, we had to scan the Membership table for records that matched UID, then find Pools that matched a record's PID. Didn't implement the REST API at first, which led to bad behavior like the server mistaking the mobile requests for a cross site request forgery (csrf). Couldn't be successfully implemented
Future Plans
Implement the REST API for full platform functionality Implement prize proportioning - how much goes to 1st place, 2nd, etc Implement automatic transactions using Authorize.net
Log in or sign up for Devpost to join the conversation.