Tweetor
Tweetor is a social media website built using Flask, SQLite, and Jinja templates. It allows users to sign up, log in, post Flits, view user profiles, and interact with Flits.
Features
- User sign up and login functionality
- Posting and viewing Flits
- User profile pages
- Formatting Flits with bold, italic, and underline text
- Logout functionality
Prerequisites
- Python 3.7 or higher
- Flask 2.0 or higher
- SQLite (included with Python)
Installation
- Clone the repository:
git clone <repository_url>
- Navigate to the project directory:
cd Tweetor
- Create a virtual environment:
python3 -m venv venv
- Activate the virtual environment:
source venv/bin/activate
- Install the dependencies:
pip install -r requirements.txt
- Run the application:
python app.py
- Open your web browser and visit
http://localhost:5000
to access Tweetor.
To-Do List
- [x] Search functionality to find users and Flits
- [x] Direct Messages (DMs) functionality
- [ ] Following functionality
- [ ] Implement an algorithm for personalized Flit recommendations (similar to Twitter's algorithm)
- [ ] Add user profile picture upload functionality
- [ ] Enhance the design and styling of the application
- [ ] Implement reFlits and likes functionality
- [ ] Integrate real-time updates using WebSocket (e.g., new Flits, notifications)
- [x] Implement pagination for Flits on the home page and user profiles
- [ ] Implement trending topics and hashtags
- [x] Add user settings and account management features
- [ ] Implement user authentication using OAuth (e.g., Google, Facebook, Twitter)
- [ ] Add support for multimedia content (images, videos) in Flits
- [ ] Implement user mentions and notifications
- [ ] Implement hashtag autocompletion and suggestions
- [x] Improve security (e.g., password hashing, CSRF protection)
- [ ] Implement email notifications for important events (e.g., new followers, mentions)
- [ ] Perform code optimization and refactoring for better performance and maintainability
x
Contributing
Contributions are welcome! If you have any suggestions, bug reports, or feature requests, please open an issue or submit a pull request.
License
This project is licensed under the MIT License.