Present Finder is a fullstack web application that helps users find presents for events based on their contacts' interests. When the user enters a contact's events and interests, a list of suggested presents will be generated. The user can bookmark presents, get notifications for upcoming events, see past presents they have given someone, and more!
- Notifications for upcoming events
- Data visualization for user's events in a year
- Track contacts and their events
- Search Amazon for products
- Find presents for contacts based on interests
- Track current, past and bookmarked presents
- See similar products on product detail page
This is the user's homepage with a bar graph created in Chart.js. It also lists the user's contacts and events for the current month.
A user can enter events and interests for a contact. This page will also show you the past presents you have given that person.
The events details page will show you the selected, past and bookmarked presents for a particular event. The suggest presents are based on the interests entered on the contact details page.
A user can click into a product to see details and similar products to the selected product.
Present Finder is created with the following:
Python, PostgreSQL, SQLAlchemy, Flask, Jinja, Javascript, JQuery, Ajax, Boostrap, Chart.js, Amazon Product Advertising API, Twilio API
You will need:
- Amazon Product Advertising account
- AWS account
- Twilio account
Create and launch a virtual environment
$ virtualenv env
$ source env/bin/activate
Install requirements
$ pip install -r requirements.txt
Input your Amazon keys in a file called secrets.sh
export AMAZON_ACCESS_KEY="Your Amazon access key here"
export AMAZON_SECRET_KEY="Your Amazon secret key here"
export AMAZON_ASSOC_TAG="Your Amazon associate tag"
export FLASK_SECRET_KEY="Your flask key here"
export ACCOUNT_SID="Your Twilio account sid here"
export AUTH_TOKEN="Your Twilio auth token here"
export TWILIO_NUM="Your Twilio number here"
Source your file into the environment
$ source secrets.sh
Create and seed the database
$ createdb presents
$ python seed.py
Launch server
$ python server.py
Navigate to server address.
localhost:5000