Welcome to my Twitter Clone project built with Django, Django Rest Framework, and Django Channels. This project includes a wide range of features, including authentication, tweet management, likes, retweets, notifications, real-time chat, and more.
The backend of this project is designed to handle all the features of a Twitter clone. Here's a list of the main features implemented:
-
Authentication: Endpoints for signup, email activation, login, password reset request, password reset, password change, JWT token refresh, JWT token verification, and logout are available.
-
Tweets: Tweet endpoints for creating, reading, updating, and deleting tweets.
-
Likes: Users can like tweets, and there are endpoints to manage these actions.
-
Bookmark: Users can bookmark tweets, and there are endpoints to manage bookmarks.
-
Retweets: You can create, read, update, and delete retweets.
-
Retweet Likes: Users can also like retweets, and there are endpoints to manage these actions.
-
User Management: Endpoints to get current user information, update current user information, and get information about other users are available. Additionally, you can manage following and followers.
-
Notifications: The real-time notification system is implemented, allowing users to receive real-time notifications.
-
Real-Time Chat: Users can communicate in real-time through the chat feature.
- Python 3.10+
- Git
- PostgreSQL (optional)
- Docker (optional)
- Clone this repository to your machine.
git clone https://github.com/Macktireh/clone-twitter-backend.git clone-twitter-backend
- Copy the
.env.example
file to.env
and configure the environment variables as needed.
- Run the following command to start the application with Docker Compose:
docker-compose up --build
If you prefer not to use Docker, here's how to install the application:
- Create a Python virtual environment and activate it.
python -m venv .venv
for MacOS or Linux
source .venv/bin/activate
for Windows
.\venv\Scripts\activate
- Install Python dependencies using pip:
pip install -r requirements.txt
- Apply database migrations:
python manage.py migrate
- Run the Django development server:
python manage.py runserver
The application will be accessible at http://localhost:8000
This project is licensed under the MIT License.