Skip to content

A Twitter-like social media app built with Flask and PostgreSQL.

License

Notifications You must be signed in to change notification settings

seanoliver/warbler

Repository files navigation

Logo

Warbler

A less dystopian version of another popular social media app.
Tweet your thoughts, chirp your feelings, and warble your heart out.

View Demo · Report Bug · Request Feature

Top Languages GitHub repo size GitHub code size in bytes GitHub contributors GitHub last commit GitHub issues GitHub

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Roadmap
  5. Contributing
  6. License
  7. Contact
  8. Acknowledgments

About The Project

Warbler is a Twitter clone for people who like birds. It was originally built in 2023 as a project for the Rithm School curriculum. It's a full-stack web application built with Flask, Python, Jinja, and PostgreSQL. The demo is hosted on Render and the database is hosted on ElephantSQL.

This project is a great way to learn more about:

  • Encryption and password hashing
  • Database design and modeling
  • User authentication and authorization
  • User sessions and cookies
  • RESTful routing

I'm excited to keep building on this project and add more features. Feel free to contribute!

You can log into the demo site with the following credentials:

  • Username: guest
  • Password: password

(back to top)

Screenshots

Logged In Timeline
Logged-In Timeline

User Profile Page
User Profile Page

Followers Listing Page
Followers Listing Page

(back to top)

Key Features

  • Users can create an account and log in
  • Users can edit their profile (including changing their profile picture)
  • Users can write posts (called "warbles")
  • Users can like warbles
  • Users can follow other users
  • Users can see the warbles of users they follow (called "following")
  • Users can see who is following them
  • Users can see their own warbles and their following warbles on their homepage
  • Users can delete their own warbles
  • Users can like and unlike warbles
  • Users can see a list of all warblers
  • Users can see a list of warbles that they have liked
  • Users can see a list of warbles that they have posted

(back to top)

Built With

This project was built in 2023 using the following technologies.

  • Flask
  • Python
  • Jinja
  • SQLAlchemy
  • PostgreSQL
  • WTForms
  • Bcrypt
  • Gunicorn
  • Jquery
  • Bootstrap

See requirements.txt for a full list of dependencies.

(back to top)

Getting Started

To get a local copy up and running follow these simple steps.

  1. Clone this repository (only this branch)

    git clone
  2. Create a virtual environment

    python3 -m venv venv
    source venv/bin/activate
  3. Install dependencies

     pip install -r requirements.txt
  4. Create database

     createdb warbler
  5. Seed database

     python seed.py
  6. Run the app

     flask run
  7. Go to localhost:5000 to view the app

(back to top)

Roadmap

  • Fix logout bug
  • Update images in app
  • Add toggle for all warbles vs. following warbles
  • Migrate frontend to React

(back to top)

Contributing

This is a great project for learning Flask, SQLAlchemy, and WTForms. Feel free to fork this repo and make it your own. If you have any questions or suggestions, please feel free to contact me!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

(back to top)

License

Distributed under the MIT License. See LICENSE for more information.

(back to top)

Contact

Your Name - @SeanOliver - [email protected]

Project Link: https://github.com/seanoliver/warbler

Live Demo: https://warbler.seanoliver.dev/

(back to top)

Acknowledgments

This was a project I completed as part of the Rithm School curriculum. I would like to thank the entire Rithm team for their amazing curriculum and support.

(back to top)

About

A Twitter-like social media app built with Flask and PostgreSQL.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published