Graphia is a feature-rich and scalable social media platform that empowers users to connect, share, and communicate in real time. Built with modern technologies, the platform ensures a seamless and secure user experience. Users can post updates, manage their profiles, engage in private or group chats, and discover other users through advanced search features.
The project follows a modular approach with separate frontend and backend directories, ensuring maintainability and ease of development.
- CRUD Operations: Create, read, update, and delete posts.
- User Profile: View user information, user posts, and follow/unfollow other users.
- Search Functionality: Easily search for users based on their username.
- Secure Authentication: JWT-based authentication with secure cookies for user login, signup, and logout.
- Private and Group Messaging:
- Real-time chat with both private and group chat options.
- Support for text messages and file sharing.
- Group Management:
- Create, join, search, and leave groups.
- Real-time Communication: Powered by WebSockets and Django Channels for instant communication.
- React.js
- Tailwind CSS
- Axios
- Django
- Django REST Framework
- Django Channels
- WebSockets
- Redis
- PostgreSQL
- JWT Auth with secure cookies
Graphia/
│
├── frontend/ # Contains all frontend code built with React.js
├── backend/ # Contains backend code built with Django
├── requirements.txt # Backend dependencies
└── README.md # Project documentation
- Clone the repository and navigate to the frontend directory:
git clone https://github.com/Mohitranag18/Graphia.git cd Graphia/frontend
- Install dependencies:
npm install
- Start the development server:
npm start
- Navigate to the backend directory:
cd ../backend
- Install backend dependencies:
pip install -r requirements.txt
- Run database migrations:
python manage.py migrate
- Start the Django development server:
python manage.py runserver
- Register a new account or log in using existing credentials.
- Use the secure JWT-based cookie authentication for all further operations.
- Navigate to the post creation page and submit your content.
- Edit or delete posts as needed from your user profile section.
- Engage in private or group chats in real-time.
- Share files and text messages seamlessly.
- Create, search, join, or leave groups as per your requirement.
We welcome contributions from the community! Please follow these steps to contribute:
-
Fork the repository:
Click the fork button on the top-right of the repo page. -
Clone your fork:
git clone https://github.com/your-username/Graphia.git cd Graphia
-
Create a feature branch:
git checkout -b feature/YourFeatureName
-
Make your changes and commit:
git commit -m "Add your message here"
-
Push your changes:
git push origin feature/YourFeatureName
-
Create a pull request:
Submit your changes for review by opening a pull request on GitHub.
- Audio and Video Calling: Using WebRTC for real-time communication.
- Unique Social Features: To enhance user engagement.
This project is licensed under the MIT License.