TaskFlow is a powerful, flexible task management system designed for teams to collaborate efficiently. Built with NestJS, GraphQL, and Prisma, TaskFlow allows users to create projects, assign tasks, track progress, and receive real-time updates.
- User Authentication: Secure sign-up and login with JWT-based authentication.
- Role-Based Access Control (RBAC): Manage permissions with Admin, Manager, and Member roles.
- Project Management: Create, update, and delete projects.
- Task Management: Assign tasks to team members, set priorities, and track deadlines.
- Real-Time Updates: Get live notifications on task status changes using GraphQL subscriptions.
- Advanced Authorization: Protect sensitive data with custom guards and directives.
- Scalable Architecture: Optimized for performance and easy deployment.
- Backend: NestJS
- API: GraphQL with Apollo Server
- ORM: Prisma
- Database: PostgreSQL
- Authentication: JWT
- Real-Time: GraphQL Subscriptions (WebSockets)
- Deployment: Docker, CI/CD (GitHub Actions)
-
Clone the Repository:
git clone https://github.com/your-username/taskflow.git cd taskflow -
Install Dependencies:
npm install
-
Set Up Environment Variables: Create a
.envfile:DATABASE_URL=postgresql://user:password@localhost:5432/taskflow JWT_SECRET=your_jwt_secret
-
Run the Development Server:
npm run start:dev
- Register:
registerUsermutation - Login:
loginmutation (returns JWT) - Protected Routes: Use JWT in the Authorization header
Example:
Authorization: Bearer <your-token>Access the GraphQL Playground at:
http://localhost:3000/graphql
You can perform queries, mutations, and subscriptions directly in the playground.
-
Build the Project:
npm run build
-
Run in Production Mode:
npm run start:prod
-
Docker Deployment:
docker build -t taskflow . docker run -p 3000:3000 taskflow
Run unit and integration tests using Jest:
npm run testFor end-to-end (E2E) testing:
npm run test:e2eContributions are welcome! Please open an issue or submit a pull request for any improvements.
- Fork the repository
- Create a new branch (
git checkout -b feature-xyz) - Commit your changes (
git commit -m 'Add new feature') - Push to the branch (
git push origin feature-xyz) - Open a pull request
This project is licensed under the MIT License.
- NestJS Team
- Prisma Contributors
- GraphQL Community
Happy coding! 🎉