Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/seanoliver/warbler
A Twitter-like social media app built with Flask and PostgreSQL.
https://github.com/seanoliver/warbler
flask postgresql python
Last synced: 18 days ago
JSON representation
A Twitter-like social media app built with Flask and PostgreSQL.
- Host: GitHub
- URL: https://github.com/seanoliver/warbler
- Owner: seanoliver
- License: mit
- Created: 2023-03-24T21:17:25.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2023-07-21T23:52:43.000Z (over 1 year ago)
- Last Synced: 2024-12-06T16:58:07.550Z (about 1 month ago)
- Topics: flask, postgresql, python
- Language: Python
- Homepage: https://warbler.seanoliver.dev/
- Size: 5.01 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
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](https://img.shields.io/github/languages/top/seanoliver/warbler)
![GitHub repo size](https://img.shields.io/github/repo-size/seanoliver/warbler)
![GitHub code size in bytes](https://img.shields.io/github/languages/code-size/seanoliver/warbler)
![GitHub contributors](https://img.shields.io/github/contributors/seanoliver/warbler)
![GitHub last commit](https://img.shields.io/github/last-commit/seanoliver/warbler)
![GitHub issues](https://img.shields.io/github/issues/seanoliver/warbler)
![GitHub](https://img.shields.io/github/license/seanoliver/warbler)Table of Contents
## 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](https://www.rithmschool.com/) curriculum. It's a full-stack web application built with Flask, Python, Jinja, and PostgreSQL. The demo is hosted on [Render](https://render.com/) and the database is hosted on [ElephantSQL](https://www.elephantsql.com/).
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 routingI'm excited to keep building on this project and add more features. Feel free to contribute!
You can log into the [demo site](https://warbler.seanoliver.dev/) with the following credentials:
- Username: `guest`
- Password: `password`### Screenshots
Logged-In Timeline
User Profile Page
Followers Listing Page### 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### Built With
This project was built in 2023 using the following technologies.
- ![Flask][Flask]
- ![Python][Python]
- ![Jinja][Jinja]
- ![SQLAlchemy][SQLAlchemy]
- ![PostgreSQL][PostgreSQL]
- ![WTForms][WTForms]
- ![Bcrypt][Bcrypt]
- ![Gunicorn][Gunicorn]
- ![Jquery][Jquery]
- ![Bootstrap][Bootstrap]See [requirements.txt](https://github.com/seanoliver/warbler/blob/master/requirements.txt) for a full list of dependencies.
## Getting Started
To get a local copy up and running follow these simple steps.
1. Clone this repository (only this branch)
```bash
git clone
```2. Create a virtual environment
```bash
python3 -m venv venv
source venv/bin/activate
```3. Install dependencies
```bash
pip install -r requirements.txt
```4. Create database
```bash
createdb warbler
```5. Seed database
```bash
python seed.py
```6. Run the app
```bash
flask run
```7. Go to localhost:5000 to view the app
## Roadmap
- [ ] Fix logout bug
- [ ] Update images in app
- [ ] Add toggle for all warbles vs. following warbles
- [ ] Migrate frontend to React## 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## License
Distributed under the MIT License. See [LICENSE](https://github.com/seanoliver/warbler/LICENSE) for more information.
## Contact
Your Name - [@SeanOliver](https://twitter.com/SeanOliver) - [email protected]
Project Link: [https://github.com/seanoliver/warbler](https://github.com/seanoliver/warbler)
Live Demo: [https://warbler.seanoliver.dev/](https://warbler.seanoliver.dev/)
## Acknowledgments
This was a project I completed as part of the [Rithm School](https://www.rithmschool.com/) curriculum. I would like to thank the entire Rithm team for their amazing curriculum and support.
- [Rithm School](https://www.rithmschool.com/)
- [Best-README-Template](https://github.com/othneildrew/Best-README-Template)
- [Img Shields](https://shields.io)
- [Twitter](https://twitter.com/)[Flask]: https://img.shields.io/badge/Flask-007D69?logo=flask&logoColor=white
[Gunicorn]: https://img.shields.io/badge/Gunicorn-492548?logo=gunicorn&logoColor=white
[Python]: https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white
[Bcrypt]: https://img.shields.io/badge/Bcrypt-FF5700?logo=bcrypt&logoColor=white
[Jinja]: https://img.shields.io/badge/Jinja-B41717?logo=jinja&logoColor=white
[PostgreSQL]: https://img.shields.io/badge/PostgreSQL-316192?logo=postgresql&logoColor=white
[WTForms]: https://img.shields.io/badge/WTForms-2D9CDB?logo=wtforms&logoColor=white
[SQLAlchemy]: https://img.shields.io/badge/SQLAlchemy-1C2833?logo=sqlalchemy&logoColor=white
[Bootstrap]: https://img.shields.io/badge/Bootstrap-563D7C?logo=bootstrap&logoColor=white
[jQuery]: https://img.shields.io/badge/jQuery-0769AD?logo=jquery&logoColor=white