SyncMate is a full-stack real-time chat platform designed for seamless communication and collaboration. It provides secure authentication, persistent messaging, and live updates using Socket.IO, along with a containerized and CI-enabled deployment workflow.
- Frontend: https://syncmate-phi.vercel.app
- Backend API: https://syncmate-backend-pc2z.onrender.com
- User registration and login
- JWT-based authentication
- Password hashing and secure API access
- One-to-one conversations
- Persistent message storage
- Socket.IO based live messaging
- Automatic room joining after authentication
- Online user tracking
- MySQL relational database
- Optimized schema with foreign key relationships
- Connection pooling using mysql2
- Persistent chat history
- Layered architecture
- Repository-Service-Controller pattern
- Modular structure
- REST APIs
- Error handling middleware
- React + Vite
- Tailwind CSS
- Responsive UI
- SPA routing
- Dockerized frontend and backend
- Multi-container setup using Docker Compose
- Nginx-based frontend serving
- Separate Dockerfiles for frontend and backend
- GitHub Actions workflow
- Automatic Docker image build
- DockerHub image publishing
- Versioned image tags using commit SHA
- Latest image tag support
- Frontend deployed on Vercel
- Backend deployed on Render
- MySQL hosted on Aiven Cloud
- React
- Vite
- Tailwind CSS
- Node.js
- Express.js
- Socket.IO
- JWT
- MySQL
- Docker
- Docker Compose
- GitHub Actions
- DockerHub
- Render
- Vercel
- Aiven
SyncMate
│
├── Frontend
│ ├── src
│ ├── public
│ ├── Dockerfile
│
├── Backend
│ ├── src
│ │ ├── config
│ │ ├── middlewares
│ │ ├── modules
│ │ │ ├── auth
│ │ │ └── chat
│ │ ├── socket
│ │ └── utils
│ │
│ ├── database
│ ├── Dockerfile
│
├── .github
│ └── workflows
│ └── ci.yml
│
├── docker-compose.yml
└── Jenkinsfile
git clone https://github.com/saurabhkumar005/SyncMate.git
cd SyncMatedocker compose up --buildFrontend:
http://localhost:5173
Backend:
http://localhost:8080
The project uses GitHub Actions for Continuous Integration:
- Checkout repository
- Setup Docker Buildx
- Login to DockerHub
- Build frontend image
- Build backend image
- Push images to DockerHub
- Maintain latest and commit-specific tags
(Add screenshots here)
Saurabh Kumar
- GitHub: https://github.com/saurabhkumar005
- LinkedIn: https://linkedin.com/in/saurabhkumar005/
⭐ If you found this project useful, consider giving it a star.