- 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>
3.5 KiB
3.5 KiB
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 |