Align Β· Collaborate Β· Achieve
Where teams move in sync β with clarity, control, and confidence.
Syncra is a full-stack Project Management & Collaboration Platform designed to help teams plan, track, and execute work efficiently.
It centralizes workspaces, projects, tasks, communication, analytics, and automation into a single systemβreducing chaos and ensuring no task or deadline is missed.
- Workspace-based organization for teams
- Project creation with defined goals
- Task management with assignees, priority, status, and due dates
- Clear ownership and progress visibility
- Invite members via email
- Real-time task-level comments
- Role-Based Access Control (Admin / Member)
- Automated email reminders 24 hours before task deadlines
- Background cron jobs using Inngest
- Transactional emails via Nodemailer + Brevo SMTP
- Responsive UI with React (Vite) and Tailwind CSS
- Dark & Light mode support
- Secure authentication powered by Clerk
- Auth Layer: Clerk handles authentication and session management
- API Layer: Express.js REST APIs with middleware protection
- Database Layer: PostgreSQL with Prisma ORM
- Async Jobs: Inngest for reminders and background workflows
- Notifications: Nodemailer integrated with Brevo SMTP
- Frontend: React (Vite) with Redux Toolkit
erDiagram
USER ||--o{ WORKSPACE_MEMBER : belongs_to
WORKSPACE ||--o{ WORKSPACE_MEMBER : has
WORKSPACE ||--o{ PROJECT : contains
PROJECT ||--o{ TASK : has
TASK ||--o{ COMMENT : receives
USER ||--o{ TASK : assigned_to
USER ||--o{ COMMENT : writes
USER {
string id
string email
string name
}
WORKSPACE {
string id
string name
}
PROJECT {
string id
string name
}
TASK {
string id
string title
string status
string priority
datetime dueDate
}
COMMENT {
string id
string content
}
The database schema is designed for flexibility and relational integrity.
User
βββ WorkspaceMember
βββ Workspace
βββ Project
βββ Task
βββ Comment
- Users can be members of multiple Workspaces.
- Workspaces contain multiple Projects.
- Projects are broken down into Tasks.
- Tasks have properties like status and deadlines, and support threads of Comments.
Syncra follows a modern monorepo structure.
Syncra/
βββ backend/ # Node.js & Express API
β βββ configs/ # Services setup (Prisma, SMTP)
β βββ controllers/ # Business logic & request handling
β βββ inngest/ # Background job functions
β βββ middlewares/ # Auth verification
β βββ prisma/ # Database schema & migrations
β βββ server.js # Application entry point
β
βββ frontend/ # React (Vite) Client
βββ src/
β βββ components/ # Reusable UI elements
β βββ features/ # Redux state slices
β βββ pages/ # Application views
βββ vite.config.js
| Category | Technologies |
|---|---|
| Frontend | React.js (Vite), Redux Toolkit, Tailwind CSS, Clerk Auth |
| Backend | Node.js, Express.js, Prisma ORM, Inngest, Nodemailer |
| Database | PostgreSQL |
| DevOps | Vercel (Deployment ready), Git |
All APIs are RESTful and secured via Clerk authentication. Base URL: /api/v1
| Module | Endpoint Path | Description |
|---|---|---|
| Auth | /auth |
User authentication and session handling. |
| Workspaces | /workspaces |
Create, manage workspaces and invites. |
| Projects | /projects |
CRUD operations for projects. |
| Tasks | /tasks |
Manage task lifecycle, assignments, deadlines. |
| Comments | /comments |
Post and retrieve comments on tasks. |
| Analytics | /analytics |
Fetch project progress and insights. |
Run Syncra locally in a few simple steps.
- Node.js (v16+) & npm
- PostgreSQL Database
- Clerk Account (for auth keys)
- Brevo / SMTP Account (for emails)
git clone [https://github.com/devbyhimans/Syncra.git](https://github.com/devbyhimans/Syncra.git)
cd Syncra
Navigate to the backend directory and install dependencies:
cd backend
npm install
Create a .env file and add your credentials:
DATABASE_URL="postgresql://user:password@localhost:5432/syncra_db"
CLERK_PUBLISHABLE_KEY="pk_test_..."
CLERK_SECRET_KEY="sk_test_..."
SMTP_HOST="smtp-relay.brevo.com"
SMTP_PORT=587
SMTP_USER="your_email@example.com"
SMTP_PASS="your_smtp_password"
SENDER_EMAIL="no-reply@syncra.com"
Run database migrations and start the server:
npx prisma migrate dev --name init
npm start
Open a new terminal, navigate to the frontend directory, and install dependencies:
cd ../frontend
npm install
Create a .env file for the frontend:
VITE_CLERK_PUBLISHABLE_KEY="pk_test_..."
Start the development server:
npm run dev
Visit http://localhost:5173 to use Syncra!
- Authentication: Secured by Clerk, handling user sessions and identities.
- Authorization: API routes are protected by middleware, ensuring only authenticated users access data.
- RBAC: Critical actions (e.g., workspace settings) are restricted to Admins.
- Data Validation: Inputs are validated to prevent common injection attacks.
- In-App Notifications: Real-time alerts in addition to emails.
- File Attachment Support: Upload files to tasks and projects.
- Calendar Integration: Sync tasks with Google/Outlook calendars.
- AI-Powered Insights: Smart predictions for project timelines.
Contributions are welcome! Please fork the repository, create a feature branch, and submit a Pull Request.
This project is licensed under the MIT License.
Himanshu
- GitHub: @devbyhimans
- Project Link: https://github.com/devbyhimans/Syncra
Built with β€οΈ by Himanshu







