{"id":48540090,"url":"https://github.com/foxfix/sprint_planning_manager","last_synced_at":"2026-04-08T04:01:36.491Z","repository":{"id":345780619,"uuid":"1185477959","full_name":"Foxfix/sprint_planning_manager","owner":"Foxfix","description":null,"archived":false,"fork":false,"pushed_at":"2026-04-01T22:01:49.000Z","size":280,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-02T09:34:57.313Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Foxfix.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-18T16:15:08.000Z","updated_at":"2026-04-01T22:01:53.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/Foxfix/sprint_planning_manager","commit_stats":null,"previous_names":["foxfix/sprint_planning_manager"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Foxfix/sprint_planning_manager","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Foxfix%2Fsprint_planning_manager","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Foxfix%2Fsprint_planning_manager/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Foxfix%2Fsprint_planning_manager/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Foxfix%2Fsprint_planning_manager/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Foxfix","download_url":"https://codeload.github.com/Foxfix/sprint_planning_manager/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Foxfix%2Fsprint_planning_manager/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31539229,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-07T16:28:08.000Z","status":"online","status_checked_at":"2026-04-08T02:00:06.127Z","response_time":54,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-04-08T04:01:35.488Z","updated_at":"2026-04-08T04:01:36.480Z","avatar_url":"https://github.com/Foxfix.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Agile Sprint Board - Microservices Architecture\n\nEnterprise-grade sprint planning and task management system built with microservices architecture.\n\n## 🚀 Quick Deploy to AWS\n\nDeploy to AWS Free Tier in 45 minutes:\n\n```bash\n# See QUICKSTART.md for full guide\ngit clone \u003cthis-repo\u003e\ncd sprint_planning\n# Configure AWS credentials and GitHub Secrets\ngit push origin main  # Triggers automatic deployment\n```\n\n📖 **Deployment Guides:**\n- [QUICKSTART.md](./QUICKSTART.md) - 5-minute setup guide\n- [DEPLOYMENT.md](./DEPLOYMENT.md) - Complete deployment documentation\n- [INFRASTRUCTURE.md](./INFRASTRUCTURE.md) - Architecture \u0026 infrastructure details\n\n## Architecture\n\nThis project consists of three independent services:\n\n- **Frontend Service** (Next.js) - Port 3000\n- **Backend Service** (Express API) - Port 3001\n- **Database** (PostgreSQL) - Port 5432\n\nEach service can be built, tested, and deployed independently.\n\n## Tech Stack\n\n### Backend Service\n- **Runtime:** Node.js 20\n- **Framework:** Express.js\n- **Language:** TypeScript\n- **ORM:** Prisma\n- **Database:** PostgreSQL 16\n- **Authentication:** JWT + bcrypt\n\n### Frontend Service\n- **Framework:** Next.js 15 (App Router)\n- **Language:** TypeScript\n- **Styling:** Tailwind CSS + shadcn/ui\n- **Drag \u0026 Drop:** @dnd-kit/core\n- **HTTP Client:** Native fetch\n\n## Services\n\n### Frontend Service\n- **Technology:** Next.js 15, React 19, TypeScript\n- **Port:** 3000\n- **Documentation:** See [frontend/README.md](frontend/README.md)\n\n### Backend Service\n- **Technology:** Node.js, Express, Prisma\n- **Port:** 3001\n- **Documentation:** See [backend/README.md](backend/README.md)\n\n## Development\n\n### Prerequisites\n\nBefore starting, make sure you have:\n\n1. **Node.js** (version 20 or higher)\n   - Download: https://nodejs.org/\n   - Verify: `node --version`\n\n2. **npm** (comes with Node.js)\n   - Verify: `npm --version`\n\n3. **Docker** (only for PostgreSQL database)\n   - Download: https://www.docker.com/products/docker-desktop\n   - Verify: `docker --version`\n\n\n### Step 1: Start PostgreSQL in Docker\n\nUse Docker to run **the database** for local testing:\n\n```bash\n# Start PostgreSQL container\ndocker run --name postgres-agile \\\n  -e POSTGRES_PASSWORD=postgres \\\n  -e POSTGRES_USER=postgres \\\n  -e POSTGRES_DB=agile_board \\\n  -p 5432:5432 \\\n  -d postgres:16-alpine\n\n# Verify it's running\ndocker ps\n```\n\n### Step 2: Backend Setup\n\n```bash\n# Navigate to backend directory\ncd backend\n\n# Install dependencies\nnpm install\n\n# Create .env file from example\ncp .env.example .env\n\n# The .env file should contain:\n# DATABASE_URL=postgresql://postgres:postgres@localhost:5432/agile_board\n# (default values should work if you followed the setup above)\n\n# Generate Prisma Client\nnpx prisma generate\n\n# Run database migrations\nnpx prisma migrate dev\n\n# Start development server\nnpm run dev\n```\n\nBackend will run on **http://localhost:3001**\n\n**Verify backend is working:**\n```bash\ncurl http://localhost:3001/health\n```\n\nYou should see: `{\"status\":\"ok\"}`\n\n### Step 3: Frontend Setup\n\nOpen a **new terminal window** (keep backend running):\n\n```bash\n# Navigate to frontend directory\ncd frontend\n\n# Install dependencies\nnpm install\n\n# Create .env.local file from example\ncp .env.example .env.local\n\n# The .env.local should contain:\n# NEXT_PUBLIC_API_URL=http://localhost:3001\n# (default value should work)\n\n# Start development server\nnpm run dev\n```\n\nFrontend will run on **http://localhost:3000**\n\n**First-time build takes 3-5 minutes.** Subsequent starts are much faster.\n\n### Step 4: Access the Application\n\nOnce all services are running (look for \"Server running\" messages), open your browser:\n\n- **Frontend:** http://localhost:3000\n- **Backend API:** http://localhost:3001\n- **Health Check:** http://localhost:3001/health\n\n### Step 5: Create Your Account\n\n1. Click \"Sign up\" or go to http://localhost:3000/register\n2. Enter your details:\n   - Full Name: Nick Lu\n   - Email: nick@example.com\n   - Password: password123\n3. Click \"Create account\"\n4. You'll be automatically logged in and redirected to the dashboard\n\n\n\n## Project Structure\n\n```\nsprint_planning/\n├── frontend/              # Frontend microservice\n│   ├── src/\n│   │   ├── app/          # Next.js pages (App Router)\n│   │   ├── components/   # React components\n│   │   ├── lib/          # Utilities and API client\n│   │   └── types/        # TypeScript types\n│   ├\n│   ├── package.json\n│   └── README.md\n│\n├── backend/              # Backend microservice\n│   ├── src/\n│   │   ├── config/       # Configuration\n│   │   ├── controllers/  # Route controllers\n│   │   ├── middleware/   # Express middleware\n│   │   ├── routes/       # API routes\n│   │   ├── services/     # Business logic\n│   │   └── utils/        # Utilities\n│   ├── prisma/\n│   │   └── schema.prisma # Database schema\n│   |\n│   ├── package.json\n│   └── README.md\n│\n├\n└── README.md            # This file\n```\n\n## Core Features\n\n### 1. Team \u0026 Project Management\n- User authentication (register/login)\n- Create teams\n- Create projects within teams\n- Invite team members\n- Role-based access (Admin, Member)\n\n### 2. Sprint Planning\n- Create sprints (2-week iterations)\n- Assign tasks to sprints\n- Sprint capacity tracking\n- Sprint goals\n\n### 3. Kanban Board\n- Visual board: To Do → In Progress → In Review → Done\n- Drag \u0026 drop tasks between columns\n- Quick actions (assign, edit, comment)\n\n### 4. Task Details\n- Detailed task modal\n- Edit all properties inline\n- Activity log (change history)\n- Comments section\n\n## API Documentation\n\nThe backend exposes a REST API with the following endpoints:\n\n### Authentication\n```\nPOST   /api/auth/register\nPOST   /api/auth/login\nGET    /api/auth/me\n```\n\n### Teams\n```\nPOST   /api/teams\nGET    /api/teams\nGET    /api/teams/:id\nPATCH  /api/teams/:id\nDELETE /api/teams/:id\nPOST   /api/teams/:id/members\nDELETE /api/teams/:id/members/:userId\n```\n\n### Projects\n```\nPOST   /api/projects\nGET    /api/projects/team/:teamId\nGET    /api/projects/:id\nPATCH  /api/projects/:id\nDELETE /api/projects/:id\n```\n\n### Sprints\n```\nPOST   /api/sprints/project/:projectId\nGET    /api/sprints/project/:projectId\nGET    /api/sprints/:id\nPATCH  /api/sprints/:id\nPOST   /api/sprints/:id/start\nPOST   /api/sprints/:id/complete\nDELETE /api/sprints/:id\nGET    /api/sprints/:id/burndown\n```\n\n### Tasks\n```\nPOST   /api/tasks/project/:projectId\nGET    /api/tasks/project/:projectId\nGET    /api/tasks/sprint/:sprintId\nGET    /api/tasks/:id\nPATCH  /api/tasks/:id\nPATCH  /api/tasks/:id/move\nDELETE /api/tasks/:id\nPOST   /api/tasks/:taskId/comments\nGET    /api/tasks/:taskId/comments\n```\n## License\n\nMIT","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffoxfix%2Fsprint_planning_manager","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffoxfix%2Fsprint_planning_manager","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffoxfix%2Fsprint_planning_manager/lists"}