Witter is a robust Python-based social media microblogging platform designed for efficient handling of user posts, follower relationships, and related operations, all through a web interface. For a detailed description and overview of WalletOne's main functionalities, see this blog post: Introducing Witter: A Dynamic Social Media Platform with Python Backend.
- Create and delete posts with unique post IDs
- Manage user profiles and follower relationships
- Search functionality by hashtags and user handles
- Display user timelines and trending topics
- Efficient post retrieval using database indexing
- Real-time updates with WebSocket technology
- Efficient Post Retrieval: Utilizes database indexing for fast post lookups
- Scalable User Management: Implements follower relationships using a many-to-many data model
- Real-time Updates: Uses WebSocket technology for instant post delivery
- Django-based Backend: Leverages Django's ORM for database operations and user authentication
- RESTful API: Provides a comprehensive API for third-party integrations
Post
: Represents a user's post with content and metadataUser
: Represents a Witter user with profile informationTimeline
: Manages the collection and display of posts for a userHashtag
: Represents trending topics and searchable terms
create_post
: Creates a new post in the systemdelete_post
: Removes a post and updates all related datafollow_user
: Establishes a follower relationship between userssearch_hashtag
: Retrieves posts containing a specific hashtagget_user_timeline
: Fetches and displays a user's timeline
- Post retrieval: Optimized through database indexing
- User timeline generation: Efficient querying of followed users' posts
- Hashtag searching: Utilizes full-text search capabilities of the database
- Real-time updates: Implemented using WebSocket connections for minimal latency
- Implement media uploads (images, videos)
- Add direct messaging functionality
- Develop mobile applications (iOS and Android)
- Implement advanced analytics for trending topics and user engagement
Contributions are welcome! Please feel free to submit a pull request.
This project is licensed under the MIT License - see the LICENSE.md file for details.