books/docs/architecture/tech-stack.md
Greg fa8acef423 Epic 1, Story 1.1: Project Initialization & Repository Setup
- Initialize Git repository with main branch
- Create comprehensive .gitignore for Node.js, React, and environment files
- Set up directory structure (frontend/, backend/, docs/)
- Create detailed README.md with project overview and setup instructions
- Add .env.example with all required environment variables
- Configure Prettier for consistent code formatting

All acceptance criteria met:
 Git repository initialized with appropriate .gitignore
 Directory structure matches Technical Assumptions
 README.md created with project overview and setup docs
 .env.example file with all required environment variables
 Prettier config files added for code formatting consistency

🤖 Generated with Claude Code (https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-01 15:12:30 +01:00

39 lines
3.5 KiB
Markdown

# Tech Stack
This is the DEFINITIVE technology selection for the entire project. All development must use these exact versions.
## Technology Stack Table
| Category | Technology | Version | Purpose | Rationale |
|----------|-----------|---------|---------|-----------|
| **Frontend Language** | JavaScript (ES6+) | Latest | Frontend development language | Simpler than TypeScript for MVP, faster development, can add TS later |
| **Frontend Framework** | React | 18+ | UI framework | Component-based, excellent LLM support, large ecosystem |
| **UI Component Library** | None (Custom + Tailwind) | N/A | UI styling | Tailwind sufficient, no component library needed for simple UI |
| **State Management** | React Context API | Built-in | Global state | Sufficient for MVP, no Redux complexity needed |
| **Backend Language** | Node.js | 20 LTS | Backend runtime | JavaScript consistency with frontend, excellent async I/O |
| **Backend Framework** | Express | 4.x | REST API framework | Minimal, flexible, well-documented, fast development |
| **API Style** | REST | N/A | API architecture | Simple, standard, no GraphQL complexity needed |
| **Database** | PostgreSQL | 15+ | Persistent data storage | Robust, ACID compliant, excellent Prisma support |
| **ORM** | Prisma | Latest | Database access layer | Type-safe, great DX, migrations, excellent PostgreSQL support |
| **Cache** | In-Memory (Node.js Map) | N/A | Book metadata cache | Simple, sufficient for single-user, no Redis needed |
| **File Storage** | N/A | N/A | File storage | No file uploads in MVP (book covers from Open Library) |
| **Authentication** | None (Single-User) | N/A | User authentication | Not needed for single-user MVP, add in v1.1 for multi-user |
| **Frontend Testing** | Vitest + React Testing Library | Latest | Component and unit tests | Fast, Vite-native, modern alternative to Jest |
| **Backend Testing** | Jest | Latest | API and unit tests | Industry standard, great Node.js support |
| **E2E Testing** | Manual | N/A | End-to-end testing | Manual testing sufficient for MVP, can add Playwright/Cypress later |
| **Build Tool** | Vite | Latest | Frontend build tool | Fast, modern, excellent DX, PWA support via plugin |
| **Bundler** | Vite (Rollup) | Latest | JavaScript bundler | Built into Vite, optimized bundles |
| **IaC Tool** | Docker Compose | Latest | Local dev orchestration | Simple, sufficient for Coolify deployment |
| **CI/CD** | Manual / Coolify | N/A | Deployment automation | Coolify handles deployment, no CI/CD pipeline needed initially |
| **Monitoring** | Coolify Built-in | N/A | Uptime monitoring | Health checks via Coolify, add dedicated monitoring post-MVP |
| **Logging** | Console (Dev) / Winston (Prod) | Latest | Application logging | Structured logging in production for debugging |
| **CSS Framework** | Tailwind CSS | 3.x | Styling framework | Utility-first, mobile-friendly, fast prototyping |
| **HTTP Client** | Fetch API (Native) | Built-in | API requests | Modern, built-in, no Axios dependency needed |
| **Date Library** | date-fns | Latest | Date manipulation | Lightweight, modular, better than Moment.js |
| **PWA Tool** | vite-plugin-pwa | Latest | PWA manifest & service worker | Easy Vite integration, handles PWA boilerplate |
| **Validation** | express-validator | Latest | Input validation | Express-specific, declarative, comprehensive |
| **Security** | helmet | Latest | Security headers | Essential HTTP security headers for Express |
| **CORS** | cors | Latest | Cross-origin requests | Configure frontend-backend communication |
---