Warbler is a full stack Twitter clone built with a Flask backend, PostgreSQL database and SQLAlchemy ORM. The frontend uses Jinja for HTML templating, jQuery and Axios for certain features.
Note: Please wait a few seconds for app to load. Heroku's dyno is often sleeping if no requests have been made in a while.
- New users can log in / sign up
- Logged in users can edit their user profile
- Logged in users can follow and unfollow other users
- Logged in users can write messages
- Logged in users can like and unlike other users' messages
- Logged in users can explore and search for other users
- Logged in users can delete their profile
- Users can delete their own messages
- Users can change their password
- Clone the repository
cd warbler- Set up the virtual environment
python3 -m venv venvsource venv/bin/activatepip3 install -r requirements.txt
- Create database
createdb warblercreatedb warbler-testpython3 seed.py
- Run the server
flask run
- To run all tests:
python3 -m unittest - To run specific test file:
python3 -m unittest test_FILENAME.py
- Flask - Backend framework
- Flask-WTForms - Integrates Flask with WTForms library, includes validations and CSRF protection
- PostgreSQL database
- SQLAlchemy - Object Relational Mapper (ORM) for interacting with database
- Jinja - HTML Templating for views
- Axios - Promise-based HTTP client for asynchronous requests
My partner for the project was @d-lee84