Software Development Fall Term Final Project
Visit our website: http://convenio.chill.in/
Watch our demo video: http://youtu.be/oF26g-Z9m7Y
Have you ever tried to meet up with your friends only to realize that it's just too much of a headache to decide on a mutual restaurant and time to meet up? With Convenio, you and your friends can now convene with convenience.
To get started, login to our website with your Facebook credentials. This allows us to connect you to your friends that also use the app. Don't worry, if none of your friends have joined us yet, you'll automatically be able to invite some of the app's creators, Justin, Lev, or Dennis. After logging in for the first time, remember to update your food preferences under the "My Account" tab.
The first step is to select "Create New Chill", which will allow you to fill out some basic information about the event you want to host. You'll answer some of the classic who, what, where, when, and why questions, except it is implied that the answer to why is because you want to have fun with friends. WHO do you want to invite? WHAT type of food do you prefer? WHERE do you want to meet? WHEN do you want to meet? Don't worry, we've got your back, all of the fields except for the title of the Chill itself will autocomplete for convenience.
After creating the Chill, the friends you invited will receive a notification on their dashboard to provide their own input. Invitees won't be able to change things like the title of the Chill or who's on the guestlist, but they'll be able to see what the host suggested in terms of cuisine, location, and time and either agree or offer their own input.
Once everyone invited to a Chill has completed their response form, our application will analyze everyone's requests and suggest five restaurants to the host, who gets to make the final call. Once the host approves a time and place, a summary will appear on all of the guest's dashboards. If you want to get directions to the restaurant, simply input wherever you'll be departing from and you'll be able to compare travel time by walking, bicycling, driving, or riding public transit directly within the app. Now, it is up to you to enjoy your time out with friends, for which planning was made that much easier by Convenio.
- open up a terminal and type
$git clone git@github.com:justinstrauss/finalproj.git
- create a virtual environment (optional) and type
$pip install flask Flask-OAuth
- type
$python app.py
to run the app - go to localhost:5000 in your browser (Chrome is recommended)
- Python and Flask for basic app backbone
- Flask-OAuth for easy Facebook login within the microframework
- Login Required Decorator for easy authentication
- List Comprehensions for code simplicity
- Digital Ocean for droplet deployment
- Gunicorn as a WSGI server
- nginx as a reverse proxy to the Gunicorn server
- FreeDNS for web hosting
- Facebook Graph API for connecting with friends
- Yelp API for restaurant searches
- Google Maps API for directions and geolocation
- Pure CSS for CSS styling
- JQuery for interactive form widgets
- SQLite for database storage
- Google Places for location autocompletion
Lev Akabas: Analytics, Back End
Dennis Nenov: Code Reviewer, Workflow
Justin Strauss: Project Manager, Back End
Derek Tsui: Front End, Styling
- 12/19: finalize project idea (all)
- 12/24 - 1/4: finish college apps (Justin and Dennis) and work on project during free time (Lev and Derek) during winter break
- 1/5: get login with Facebook working (Derek)
- 1/7: test Digital Ocean droplet (Justin)
- 1/9: move Facebook login from separate page to menu bar (Justin)
- 1/11: integrate Yelp API (Lev)
- 1/13: geolocation added (Justin)
- 1/15: finish basic front end UI (Derek)
- 1/17: layout "Create New Chill" form (Dennis)
- 1/19: integrate directions - Google Maps walking, transit, biking, driving (Justin)
- 1/21: layout response form (Justin)
- 1/23: fix login with Facebook (Dennis and Lev)
- 1/24: layout summary form (Justin)
- 1/25: complete front page integration (Justin)
- 1/26: finalize database methods (Dennis)
- 1/27: make demo video and deploy on Digital Ocean (Justin)