A full-stack web application for Agile project management with user authentication, sprint boards, story management, and customizable workflows.
- React 18 with TypeScript
- Vite (Build tool and dev server)
- TailwindCSS 3 (Styling)
- React Router 6 (SPA routing)
- Radix UI (Component library)
- Node.js with Express 5
- Prisma ORM 6
- PostgreSQL 15 (Database)
- Docker & Docker Compose
- PNPM 10+ (Package manager)
- TypeScript 5
- Vitest (Testing)
- Prettier (Code formatting)
You'll need these installed before getting started:
-
Node.js (v18+) - Download here
- Check:
node --version
- Check:
-
PNPM (v10+) - Fast package manager
npm install -g pnpm pnpm --version # verify -
Docker Desktop - For the database
- Download here
⚠️ Must be running before you start the app- Check:
docker --version
-
Git - Download here
- Check:
git --version
- Check:
git clone https://github.com/dgupta98/AAWebApp.git
cd AAWebApppnpm installTakes 2-3 minutes. Ignore any WARN messages.
chmod +x scripts/start-all.sh scripts/stop-all.shOpen Docker Desktop and wait for it to fully start (green icon).
pnpm start:allThis automatically:
- Starts the database
- Runs migrations
- Launches the dev server
- Opens your browser to http://localhost:8080
Wait for "VITE ready" in your terminal, then you're good to go!
pnpm stop:allOther URLs:
- Frontend: http://localhost:8080
- Database GUI: http://localhost:5555 (Prisma Studio)
Docker not running? → Open Docker Desktop and wait for it to start
Port 5432 in use? (another database running)
lsof -ti:5432 | xargs kill -9 # or: brew services stop postgresql
pnpm db:down && pnpm db:upPort 8080 in use?
lsof -ti:8080 | xargs kill -9
pnpm devModule errors?
rm -rf node_modules
pnpm install
pnpm prisma:generateDatabase errors?
pnpm db:down
pnpm db:up
sleep 10
pnpm prisma:migratePermission denied? (macOS/Linux)
chmod +x scripts/*.sh| Command | What it does |
|---|---|
pnpm start:all |
Start everything (recommended) |
pnpm stop:all |
Stop everything |
pnpm dev |
Dev server only |
pnpm db:up / db:down |
Start/stop database |
pnpm prisma:studio |
Open database GUI |
pnpm typecheck |
Check TypeScript |
pnpm test |
Run tests |
pnpm build |
Build for production |
client/ # Frontend (React)
server/ # Backend (Express)
prisma/ # Database schema & migrations
shared/ # Shared types
- User registration and login
- Session-based authentication with HTTP-only cookies
- Password reset functionality
- Create/delete projects with unique keys
- Role-based access control (Owner/Member)
- Project-scoped views and permissions
- Project statistics dashboard
- Group user stories into epics
- Link epics to projects
- Epic status tracking
- Full CRUD operations on user stories
- Customizable fields: title, description, priority, story points, assignee
- Archive/restore functionality
- Story comments with timestamps
- Project and epic assignment
- Visual Kanban-style board
- Dynamic status columns (customizable)
- Drag-and-drop to update story status
- Real-time status persistence
- Project-scoped sprint views
- Global product backlog
- Project-scoped backlog views
- Filter and search capabilities
- Priority and status indicators
- Add, rename, and delete status labels
- Default statuses: TODO → IN_PROGRESS → READY_FOR_TEST → DONE
- Custom statuses appear before DONE
- Changes reflect across all views (board, forms, filters)
- Real-time story and point metrics
- Recent activity feed
- Story status distribution charts
The application uses PostgreSQL with the following main models:
- User: Authentication and user profiles
- Session: Session management for authentication
- Project: Project organization
- ProjectMember: User-project relationships with roles
- Epic: Feature groupings within projects
- Story: User stories with full metadata
- Comment: Story comments
- StoryStatusLabel: Customizable status labels
For detailed schema, see prisma/schema.prisma.
Making changes:
- Frontend changes auto-reload (Vite hot reload)
- Backend changes need a restart (
Ctrl+Cthenpnpm dev) - Always run
pnpm typecheckbefore committing
Database changes:
- Edit
prisma/schema.prisma - Run
pnpm prisma:migrate - Name your migration when prompted
Adding features:
- Create a feature branch
- Make your changes
- Run tests:
pnpm test - Commit and push
pnpm test # Run tests
pnpm test --watch # Watch mode
pnpm typecheck # Type checking
pnpm build # Production build
pnpm start # Run production build- Email service not configured (password reset tokens shown in dev mode)
- Sprint planning and velocity tracking coming soon
- Real-time collaboration planned for future release