ποΈ Project Management
Create, view, and delete projects
Project-level roles: Admin and Member
Invite members by email and manage access
β
Task Management (Kanban)
Drag-and-drop Kanban board with TODO , IN_PROGRESS , and DONE columns
Task priorities: Low , Medium , High
Assign tasks, set due dates, and add descriptions
Create and edit tasks via a modal interface
π₯ Team & Member Management
Create teams and manage ownership
Add or remove members with role-based permissions
Filter and search through member lists
Overview stats: active tasks, completed tasks, overdue tasks
Task status breakdown with progress bars
Activity feed and recent task table
π€ AI Project Assistant
Floating chatbot powered by Google Gemini API (with OpenAI fallback)
Helps with project planning, risk identification, progress summaries, and next actions
Responsive SaaS dashboard β works on desktop and mobile
Dark mode / Light mode toggle
Animated page transitions and cards with Framer Motion
Sidebar navigation with clean, modern design
DATABASE SCHEMA
Technology
Purpose
React + Vite
UI framework and build tool
JavaScript / JSX
Component language
Tailwind CSS
Utility-first styling
Framer Motion
Animations and transitions
Lucide React
Icon library
Clerk React
Authentication UI
Recharts
Dashboard charts
dnd-kit
Drag-and-drop Kanban board
Technology
Purpose
Node.js + Express.js
REST API server
Prisma ORM
Database access layer
PostgreSQL / Prisma Postgres
Production database
In-memory JSON fallback
Local development database
Clerk Backend SDK
Server-side auth verification
JWT
Token-based authentication
dotenv
Environment variable management
CORS
Cross-origin request handling
Technology
Purpose
Google Gemini API
Primary AI model
OpenAI API
Fallback AI model
Tool
Purpose
ESLint
Code linting
Nodemon
Backend hot-reload
npm
Package management
Vite
Frontend build and dev server
Prisma Migrate
Database schema migrations
teamsync/
βββ client/ # React frontend (Vite)
β βββ public/
β βββ src/
β βββ components/ # Reusable UI components
β β βββ Sidebar.jsx
β β βββ Chatbot.jsx
β β βββ ...
β βββ pages/ # Route-level page components
β β βββ Landing.jsx
β β βββ Dashboard.jsx
β β βββ Projects.jsx
β β βββ Teams.jsx
β β βββ Members.jsx
β β βββ Tasks.jsx
β βββ App.jsx
β βββ main.jsx
β
βββ server/ # Node.js + Express backend
β βββ routes/
β β βββ auth.js
β β βββ projects.js
β β βββ tasks.js
β β βββ dashboard.js
β β βββ chat.js
β βββ middleware/
β β βββ auth.js
β β βββ projectAccess.js
β βββ prisma/
β β βββ schema.prisma
β βββ index.js
β
βββ .env.example
βββ README.md
Node.js v18+
npm v9+
PostgreSQL database (or use the in-memory fallback for local dev)
Clerk account
Google Gemini API key (optional, for AI chatbot)
git clone https://github.com/your-username/teamsync.git
cd teamsync
2. Configure environment variables
Backend β create server/.env:
# Database
DATABASE_URL = " postgresql://user:password@localhost:5432/teamsync"
# Clerk Authentication
CLERK_SECRET_KEY = your_clerk_secret_key
# AI Chatbot (optional)
GEMINI_API_KEY = your_gemini_api_key
OPENAI_API_KEY = your_openai_api_key # fallback
# Server
PORT = 5000
Frontend β create client/.env:
VITE_CLERK_PUBLISHABLE_KEY = your_clerk_publishable_key
VITE_API_URL = http://localhost:5000
# Install backend dependencies
cd server
npm install
# Install frontend dependencies
cd ../client
npm install
cd server
# Run Prisma migrations
npx prisma migrate dev --name init
# (Optional) Seed the database
npx prisma db seed
Local development without PostgreSQL: The server includes an in-memory JSON-backed fallback database that activates automatically when no DATABASE_URL is set.
5. Start the development servers
# Terminal 1 β Backend
cd server
npm run dev # starts on http://localhost:5000
# Terminal 2 β Frontend
cd client
npm run dev # starts on http://localhost:5173
Open http://localhost:5173 in your browser.
Route
Page
Description
/
Landing Page
Public homepage with hero, features, and CTA
/sign-in
Login
Clerk authentication
/sign-up
Sign Up
Clerk registration
/dashboard
Dashboard
Stats, task overview, activity feed
/projects
Projects
Create, view, and manage projects
/teams
Teams
Team directory and workspace details
/members
Members
Add, filter, and remove members
/tasks
Kanban Board
Drag-and-drop task management
Method
Endpoint
Description
POST
/api/auth/register
Register a new user
POST
/api/auth/login
Login and receive JWT
Method
Endpoint
Description
GET
/api/projects
List all projects for user
POST
/api/projects
Create a new project
GET
/api/projects/:id
Get project details
DELETE
/api/projects/:id
Delete a project
POST
/api/projects/:id/members
Add a member by email
DELETE
/api/projects/:id/members/:userId
Remove a member
Method
Endpoint
Description
GET
/api/projects/:id/tasks
List tasks in a project
POST
/api/projects/:id/tasks
Create a new task
PATCH
/api/tasks/:id
Update task (status, priority, etc.)
DELETE
/api/tasks/:id
Delete a task
Method
Endpoint
Description
GET
/api/dashboard
Get overview stats for current user
Method
Endpoint
Description
POST
/api/chat
Send a message to the AI assistant
Action
Admin
Member
Create / Delete project
β
β
Add / Remove members
β
β
Create tasks
β
β
Update task status
β
β
Delete tasks
β
β
View Kanban board
β
β
# Build frontend
cd client
npm run build # outputs to client/dist/
# Start backend in production
cd server
npm start
Fork the repository
Create a feature branch β git checkout -b feature/your-feature
Commit your changes β git commit -m "feat: add your feature"
Push to the branch β git push origin feature/your-feature
Open a Pull Request
This project is licensed under the MIT License .