Skip to content

Syncra is a full-stack project management and collaboration platform that helps teams plan, track, and execute work efficiently. It offers workspace-based organization, task management, real-time collaboration, analytics, and automated deadline reminders, all powered by a secure and scalable architecture.

Notifications You must be signed in to change notification settings

devbyhimans/Syncra

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

32 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Syncra

Align Β· Collaborate Β· Achieve
Where teams move in sync β€” with clarity, control, and confidence.


πŸ“Œ Overview

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.


πŸ“Έ Screenshots

πŸ“Š Dashboard & Projects

βœ… Tasks & Team Management

πŸ“ˆ Analytics & Collaboration


🌟 Key Features

πŸ›  Project & Workflow Management

  • Workspace-based organization for teams
  • Project creation with defined goals
  • Task management with assignees, priority, status, and due dates
  • Clear ownership and progress visibility

🀝 Collaboration & Communication

  • Invite members via email
  • Real-time task-level comments
  • Role-Based Access Control (Admin / Member)

πŸ€– Automation & Smart Notifications

  • Automated email reminders 24 hours before task deadlines
  • Background cron jobs using Inngest
  • Transactional emails via Nodemailer + Brevo SMTP

🎨 Modern User Experience

  • Responsive UI with React (Vite) and Tailwind CSS
  • Dark & Light mode support
  • Secure authentication powered by Clerk

🧠 System Design (High Level)

  • 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

πŸ—‚ Database Design (ER Diagram)

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
    }
Loading

πŸ—‚ Database Design (ER Overview)

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.

πŸ— Architecture & Tech Stack

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

Technology Stack

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

πŸ“‘ API Overview

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.

πŸš€ Getting Started

Run Syncra locally in a few simple steps.

Prerequisites

  • Node.js (v16+) & npm
  • PostgreSQL Database
  • Clerk Account (for auth keys)
  • Brevo / SMTP Account (for emails)

Installation

1️⃣ Clone the Repository

git clone [https://github.com/devbyhimans/Syncra.git](https://github.com/devbyhimans/Syncra.git)
cd Syncra

2️⃣ Backend Setup

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

3️⃣ Frontend Setup

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!


πŸ”’ Security

  • 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.

🧭 Future Roadmap

  • 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.

🀝 Contributing

Contributions are welcome! Please fork the repository, create a feature branch, and submit a Pull Request.


πŸ“„ License

This project is licensed under the MIT License.


πŸ“ž Contact

Himanshu


Built with ❀️ by Himanshu


About

Syncra is a full-stack project management and collaboration platform that helps teams plan, track, and execute work efficiently. It offers workspace-based organization, task management, real-time collaboration, analytics, and automated deadline reminders, all powered by a secure and scalable architecture.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages