TigerSearch is a centralized lost and found platform for Princeton students and staff to connect missing items with their owners. The web app allows Princeton University community members to create posts about lost or found items around campus, search and filter through feeds of posts to look for matching items to the one they lost or found, communicate with posters, and ultimately help people find their stuff. The web app also features an admin mode that allows administrators of the app to track basic usage statistics, hide inappropriate posts, and ban users. The application was developed as the final project for COS333 in Fall 2021.
- Login to TigerSearch using the 'tigersearch' (service account) login credentials
- Click 'Turn On Admin Mode'
- Go to 'Manage Users' Section and modify admin privileges for intended netids (the netid needs to be registered- i.e. logged in to TigerSearch once already)
- Once assigned admin, the admin user will now see 'Turn On Admin Mode' button when they log in using their account
Warning: This will remove all users and posts. The database may need to be reset if the database space limit has been exceeded. After clearing the database, the TigerSearch db needs to have the tags reinserted into the tables. The script reset_db.py resets the database and creates the tags. To reset the db on Heroku:
heroku run flask shell -a tigersearch
from tigerapp import reset_db
- Clone the repository
- Create and activate Python virtual environment using
python3 -m venv environment_name
- Install all the requirements using
pip install -r requirements.txt
- Create a .env file containing the following keys: CLOUD_NAME, API_KEY, API_SECRET, SENDGRID_API_KEY, and DEFAULT_SENDER.
- Database setup:
- Setup postgres and add username and password to the config file
OR - Change the Database URI link to
sqlite:///site.db
- Run the database script using:
flask shell
from tigerapp import utesting_db
quit()
orctrl + D
- Setup postgres and add username and password to the config file
- Make any changes you want
- Run the app using
flask run