Welcome to Synapse, a powerful and scalable multi-tenancy project management system built with Node.js, MongoDB, and React. Designed for real-world B2B needs, this project delivers features like Google Sign-In, workspace management, project tracking, task collaboration, role-based permissions, and more. Perfect for developers aiming to create SaaS-based team collaboration platforms.
- π Authentication (Google Sign-In, Email, Password)
- π’ Create & Manage Multiple Workspaces
- π Projects & Epics Management
- β Tasks (CRUD, Status, Priority, Assignee)
- π₯ Roles & Permissions (Owner, Admin, Member)
- βοΈ Invite Members to Workspaces
- π Filters & Search (Status, Priority, AssignedTo)
- π Analytics Dashboard
- π Pagination & Load More
- π Cookie Session Management
- πͺ Logout & Session Termination
- π± Seeding for Test Data
- πΎ Mongoose Transactions for Robust Data Integrity
- π Built with MERN Stack (Node.js, MongoDB, React, TypeScript)
This project leverages the latest tools and frameworks for modern development:
- Node.js: Scalable backend architecture
- React.js: Dynamic frontend framework
- MongoDB & Mongoose: Flexible and scalable database solutions
- Google OAuth: Seamless Google Sign-In integration
- TypeScript: For a type-safe codebase
- TailwindCSS & Shadcn UI: Beautiful, responsive design
- Vite.js: Lightning-fast frontend development
Follow along step-by-step by watching the full guide on YouTube.
Create a .env file in the root of your project and configure these variables:
PORT=8000
NODE_ENV=development
MONGO_URI="mongodb+srv://<username>:<password>@<>.mongodb.net/teamsync_db"
SESSION_SECRET="session_secret_key"
GOOGLE_CLIENT_ID=<your-google-client-id>
GOOGLE_CLIENT_SECRET=<your-google-client-secret>
GOOGLE_CALLBACK_URL=http://localhost:8000/api/auth/google/callback
FRONTEND_ORIGIN=http://localhost:3000
FRONTEND_GOOGLE_CALLBACK_URL=http://localhost:3000/google/callback
Install dependencies and start the development server:
npm install
npm run dev Access the backend at http://localhost:8000.
Add the .env variables to your hosting platform (e.g., Vercel).
Deploy your app using your preferred method to make it live.