PlanIt is a modern, full-stack task and milestone management application that helps users organize their projects with hierarchical milestones, share roadmaps, and track progress effectively.
- User Authentication: Secure JWT-based authentication with refresh token support
- Task Management: Create, update, and organize tasks
- Milestone Hierarchy: Create nested milestones with parent-child relationships
- Progress Tracking: Track milestone status (Not Started, In Progress, Completed, At Risk, Delayed)
- Roadmap Sharing: Share project roadmaps via public links
- Roadmap Cloning: Clone and customize existing roadmaps
- Real-time Updates: Track changes with timestamps
- Responsive UI: Modern, responsive interface built with React and Tailwind CSS
- Runtime: Node.js with Express.js
- Database: PostgreSQL
- ORM: Prisma
- Authentication: JWT with refresh tokens
- Testing: Jest with supertest
- API Documentation: Comprehensive markdown docs
- Rate Limiting: Express rate limiter for API protection
- Framework: React 18 with TypeScript
- State Management: Redux Toolkit
- Routing: React Router v7
- Form Handling: React Hook Form with Zod validation
- Styling: Tailwind CSS with class-variance-authority
- Build Tool: Vite
- Data Visualization: D3.js
- Animations: Framer Motion
- HTTP Client: Axios
├── backend/
│ ├── src/
│ │ ├── controllers/ # Request handlers
│ │ ├── middleware/ # Auth, error handling, rate limiting
│ │ ├── routes/ # API route definitions
│ │ ├── service/ # Business logic
│ │ └── utils/ # Helper functions
│ ├── prisma/
│ │ └── schema.prisma # Database schema
│ └── tests/ # Unit, integration, and E2E tests
├── frontend/
│ ├── src/
│ │ ├── components/ # Reusable UI components
│ │ ├── features/ # Feature-specific components
│ │ ├── hooks/ # Custom React hooks
│ │ ├── pages/ # Route components
│ │ ├── services/ # API clients
│ │ ├── store/ # Redux store config
│ │ └── utils/ # Helper functions
- Node.js (v18 or higher)
- PostgreSQL (v14 or higher)
- pnpm (recommended) or npm
-
Navigate to the backend directory:
cd backend -
Install dependencies:
pnpm install
-
Set up environment variables:
cp .env.example .env
Update the
.envfile with your PostgreSQL connection string and JWT secrets. -
Run database migrations:
pnpm prisma migrate dev
-
Start the development server:
pnpm dev
-
Navigate to the frontend directory:
cd frontend -
Install dependencies:
npm install
-
Start the development server:
npm dev
# Run all tests
npm test
# Run tests in watch mode
npm test:watch
# Run specific test suites
npm test:unit
npm test:integration
npm test:e2e
# Generate coverage report
npm test:coverageDetailed API documentation is available in the backend/docs directory:
API_ENDPOINTS.md: Complete API endpoint documentationTESTING_SUMMARY.md: Testing strategy and coverageADVANCED_RATE_LIMITING.md: Rate limiting implementation details
- JWT-based authentication with refresh tokens
- Password hashing with unique salts
- Rate limiting on sensitive endpoints
- CORS protection
- Input validation and sanitization
- Secure password reset flow
- Real-time collaboration using WebSockets
- Project templates
- Advanced analytics and reporting
- Timeline visualization
- Mobile applications
- Integration with third-party tools