Full-stack application, built from idea to production using custom agents and a structured spec-driven workflow. This app can be used as a spec-driven development reference, to show how Product Requirements Documents (PRD), Feature Requirements Documents (FRD), Architecture Decision Records (ADR), and technical task breakdowns can be generated using specialized agents, and then delegated to GitHub Copilot coding agent for implementation.
The entire application was planned, specified, and built starting from the following prompt:
"I want to build a book tracking app that helps users keep track of what they've read or want to read, rate books, add personal notes, and get AI-powered recommendations based on your reading history and preferences — with explanations for why each book is recommended."
The request for building a book tracking app was given to a PM (Product Manager) agent which asked clarifying questions and produced a comprehensive specs/prd.md covering:
- Target users (avid readers)
- Core capabilities (library management, search, ratings, AI recommendations)
- Success metrics and user stories
- Assumptions, constraints, and open questions
The PM agent then broke the PRD down into individual Feature Requirements Documents, each with detailed functional requirements, acceptance criteria, and edge cases:
| Feature | Document |
|---|---|
| Book Library Management | specs/features/book-library-management.md |
| Book Search & Discovery | specs/features/book-search-discovery.md |
| User Preferences & Ratings | specs/features/user-preferences-ratings.md |
| AI-Powered Recommendations | specs/features/ai-recommendations.md |
| User Authentication & Data Persistence | specs/features/user-authentication.md |
A Dev Lead agent analyzed the requirements and produced ADRs for every major technical decision:
| Decision | Document |
|---|---|
| Frontend Framework (Next.js) | specs/adr/0001-frontend-framework.md |
| Backend Framework (ASP.NET Core) | specs/adr/0002-backend-framework.md |
| Database (PostgreSQL) | specs/adr/0003-database-selection.md |
| Authentication (ASP.NET Core Identity + JWT) | specs/adr/0004-authentication-strategy.md |
| AI Service (Azure OpenAI GPT-4o) | specs/adr/0005-ai-service-selection.md |
| Deployment Platform (Azure) | specs/adr/0006-deployment-platform.md |
A Developer agent created detailed technical tasks organized into phases, with dependencies, acceptance criteria, and test coverage requirements. See specs/tasks/README.md for the full breakdown.
Technical tasks were converted into GitHub Issues and delegated to the GitHub Copilot coding agent, which implemented each task as a pull request — following the specs, ADRs.
| Layer | Technology |
|---|---|
| Frontend | Next.js 14+ (App Router), TypeScript, Tailwind CSS, shadcn/ui |
| Backend | ASP.NET Core 8, C#, Entity Framework Core |
| Database | PostgreSQL 16 (local via Docker) |
| AI | Azure OpenAI Service (GPT-4o) |
| Auth | ASP.NET Core Identity + JWT |
| Testing | Jest + React Testing Library (frontend), xUnit (backend) |
- .NET 8 SDK
- Node.js 20+ LTS
- Docker (for the PostgreSQL database)
docker-compose up -dThis starts a PostgreSQL 16 instance on localhost:5432 with:
- User:
postgres - Password:
postgres - Database:
BookTrackerDb
cd src/BookTracker.Api
dotnet restore
dotnet runThe API will be available at http://localhost:5000 (with Swagger at /swagger).
cd book-tracker-web
npm install
cp .env.example .env.local # Configure NEXT_PUBLIC_API_URL=http://localhost:5000
npm run devThe frontend will be available at http://localhost:3000.
If you're here to see the spec-driven development process, start with these documents:
specs/prd.md— The product vision born from the original ideaspecs/features/— Detailed feature breakdowns with acceptance criteriaspecs/adr/— Architectural decisions with trade-off analysisspecs/tasks/README.md— The complete implementation plan