Modern Full-Stack Project Management with Real-time Collaboration & Automated Notifications
Built with cutting-edge technologies for modern team collaboration:
Visit the π LINK π
| Dashboard View | Project Management |
|---|---|
![]() |
![]() |
- β¨ Features
- π Tech Stack
- ποΈ Project Structure
- β‘ Getting Started
- ποΈ Database Schema
- π‘ API Endpoints
- π Background Jobs
- π¨ UI/UX Features
- π Deployment
- π Future Enhancements
- π License
- π€ Contributing
- Create multiple organizations
- Invite and manage team members
- Role-based access control
- Workspace isolation
- Create and manage projects
- Create tasks with assignees and due dates
- Task prioritization and categorization
- Real-time project updates
- Email notifications for new task assignments
- Due date reminder emails
- Real-time in-app notifications
- Background job processing with Inngest
- Invite team members via email
- Assign tasks to team members
- Track team activity and performance
- Project analytics and insights
project-management/
βββ π client/ # React Frontend
β βββ src/
β β βββ app/
β β β βββ store.js # Redux store configuration
β β β βββ themeSlice.js # Theme management
β β βββ assets/ # Static assets
β β βββ components/ # Reusable React components
β β βββ configs/
β β βββ features/ # Feature slices
β β βββ pages/ # Application pages
β β βββ App.jsx # Main App component
β β βββ index.css # Global styles
β β βββ main.jsx # Entry point
β βββ .env # Environment variables
β βββ package.json # Frontend dependencies
β βββ vite.config.js # Vite configuration
β
βββ π server/ # Express Backend
β βββ configs/
β βββ controllers/ # Route controllers
β βββ inngest/ # Background jobs
β βββ middlewares/ # Express middlewares
β βββ prisma/ # Database schema
β βββ routes/ # API routes
β βββ .env # Server environment variables
β βββ package.json # Backend dependencies
β βββ server.js # Server entry point
β
βββ LICENSE # ISC License
βββ README.md # This fileFrontend (Client):
{
"scripts": {
"dev": "vite",
"build": "vite build",
"lint": "eslint .",
"preview": "vite preview"
}
}Backend (Server):
{
"scripts": {
"postinstall": "npx prisma generate",
"server": "nodemon server.js",
"start": "prisma generate && node server.js"
}
}- Node.js (v18 or higher)
- PostgreSQL (or Neon PostgreSQL account)
- Clerk account for authentication
- Inngest account for background jobs
git clone https://github.com/elyse502/project-management.git
cd project-managementcd server
npm install
cp .env.example .env
# Configure your environment variables
npm run servercd client
npm install
cp .env.example .env
# Configure your environment variables
npm run devServer (.env):
DATABASE_URL="neon_postgresql_connection_string"
CLERK_SECRET_KEY="your_clerk_secret_key"
INNGEST_EVENT_KEY="your_inngest_event_key"
EMAIL_HOST="smtp.gmail.com"
EMAIL_PORT=587
EMAIL_USER="your_email@gmail.com"
EMAIL_PASS="your_app_password"Client (.env):
VITE_CLERK_PUBLISHABLE_KEY="your_clerk_publishable_key"
VITE_API_URL="http://localhost:5000/api"The application uses Neon PostgreSQL with Prisma ORM. Core models include:
- User - Managed by Clerk authentication
- Organization - Workspace/company entities
- Member - Organization team members
- Project - Projects within organizations
- Task - Individual tasks with assignees
- Comment - Task/project comments
- Notification - User notifications
- User signup/login via Clerk
- Organization-based access control
- Protected API routes with middleware
GET /api/workspaces- List user's workspacesPOST /api/workspaces- Create new workspacePOST /api/workspaces/:id/invite- Invite members
GET /api/projects- List organization projectsPOST /api/projects- Create new projectGET /api/projects/:id- Get project detailsPUT /api/projects/:id- Update projectDELETE /api/projects/:id- Delete project
GET /api/tasks- List project tasksPOST /api/tasks- Create new taskPUT /api/tasks/:id- Update task statusPOST /api/tasks/:id/assign- Assign task to member
The application uses Inngest for handling background jobs:
- Email Notifications - Send task assignment emails
- Due Date Reminders - Send reminder emails 24h before due date
- Clerk Webhooks - Handle user/organization sync events
- Analytics Processing - Process project statistics
- Responsive Design - Works on all devices
- Dark/Light Mode - Theme toggle support
- Real-time Updates - WebSocket connections for live updates
- Drag & Drop - Task status updates
- Charts & Analytics - Project insights with Recharts
- Calendar View - Task scheduling and due dates
Both client and server are configured for Vercel deployment with vercel.json configuration files.
- Uses Neon PostgreSQL for serverless database
- Connection pooling for optimal performance
- Automatic backups and scaling
- File attachments for tasks
- Time tracking for tasks
- Gantt chart visualization
- Mobile application
- Integrations (Slack, GitHub, etc.)
- Advanced reporting and exports
This project is licensed under the MIT License. See the LICENSE file for details.
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
For support, email elyseniyibizi502@gmail.com or create an issue in the GitHub repository.
For any questions or support, please contact:
- NIYIBIZI ElysΓ©eπ¨πΏβπ» | Github | Linkedin | Twitter.
- Email: elyseniyibizi502@gmail.com
Built with β€οΈ using modern web technologies π
Streamline your team's workflow with powerful project management tools

