This commit is contained in:
Bastian Masanek
2025-10-30 08:24:44 +01:00
commit 6e50ec7034
73 changed files with 27355 additions and 0 deletions

414
tasks/00-PROGRESS.md Normal file
View File

@@ -0,0 +1,414 @@
# 📊 MVP Implementation Progress
## my.experimenta.science
**Last Updated:** 2025-10-29
**Overall Progress:** 9/137 tasks (6.6%)
**Current Phase:** ✅ Phase 1 - Foundation (Completed)
---
## 🎯 Quick Status
| Phase | Status | Progress | Started | Completed |
| --------------------------- | ------- | ---------- | ---------- | ---------- |
| **01** Foundation | ✅ Done | 9/10 (90%) | 2025-10-29 | 2025-10-29 |
| **02** Database | ⏳ Todo | 0/12 (0%) | - | - |
| **03** Authentication | ⏳ Todo | 0/18 (0%) | - | - |
| **04** Products | ⏳ Todo | 0/10 (0%) | - | - |
| **05** Cart | ⏳ Todo | 0/12 (0%) | - | - |
| **06** Checkout | ⏳ Todo | 0/15 (0%) | - | - |
| **07** Payment | ⏳ Todo | 0/12 (0%) | - | - |
| **08** Order Processing | ⏳ Todo | 0/15 (0%) | - | - |
| **09** ERP Integration | ⏳ Todo | 0/10 (0%) | - | - |
| **10** i18n | ⏳ Todo | 0/8 (0%) | - | - |
| **11** Testing & Deployment | ⏳ Todo | 0/15 (0%) | - | - |
**Legend:** ⏳ Todo | 🔄 In Progress | ✅ Done | 🚫 Blocked | ⏭️ Skipped
---
## 🚀 Current Work
**Phase:** Phase 1 - Foundation ✅ **COMPLETED**
**Tasks Completed (9/10):**
- ✅ Initialize Nuxt 4 project with pnpm (v4.2.0)
- ✅ Copy .env.example to .env and configure
- ✅ Install shadcn-nuxt module (v2.3.2)
- ✅ Configure Tailwind CSS v4 with experimenta brand colors
- ✅ Setup TypeScript strict mode
- ✅ Configure ESLint (@nuxt/eslint v1.10.0)
- ✅ Configure Prettier (v3.6.2)
- ✅ Create basic folder structure
- ✅ Configure nuxt.config.ts
- ✅ Create basic layout components (app.vue, layouts, Header, Footer)
- ✅ Test development server
- ⏭️ Setup Git hooks with husky (Skipped - deferred to Phase 11)
**Pending:**
- ⚠️ Start Docker services (PostgreSQL + Redis) - **Manual action required**
**Next Steps:**
1. **Manual Action Required:** Start Docker Desktop and run:
```bash
docker-compose -f docker-compose.dev.yml up -d
```
2. **Begin Phase 2 - Database Setup:**
- Read `tasks/02-database.md`
- Install Drizzle ORM and PostgreSQL driver
- Create database schemas
- Generate and apply migrations
---
## 📅 Timeline
### Week 1 (Target)
- [x] Phase 1: Foundation ✅ **COMPLETED 2025-10-29**
- [ ] Phase 2: Database
- [ ] Phase 3: Authentication
### Week 2 (Target)
- [ ] Phase 4: Products
- [ ] Phase 5: Cart
- [ ] Phase 6: Checkout
### Week 3 (Target)
- [ ] Phase 7: Payment
- [ ] Phase 8: Order Processing
- [ ] Phase 9: ERP Integration
### Week 4 (Target)
- [ ] Phase 10: i18n
- [ ] Phase 11: Testing & Deployment
- [ ] MVP Launch 🎉
---
## 🚧 Blockers
**Phase 2 (Database):** Docker services (PostgreSQL + Redis) need to be started before database setup can begin.
- **Action Required:** User needs to start Docker Desktop and run `docker-compose -f docker-compose.dev.yml up -d`
- **Impact:** Blocks Phase 2 start
---
## 📝 Decisions Needed
**None currently.**
---
## ✅ Completed Milestones
- [x] Planning & Documentation (PRD, Architecture, Tech Stack)
- [x] Docker Development Setup (docker-compose.dev.yml)
- [x] Task Management System Setup
- [x] **Phase 1 - Foundation (2025-10-29)**
- Nuxt 4 project initialized
- shadcn-nuxt and Tailwind CSS configured
- TypeScript strict mode enabled
- ESLint and Prettier configured
- Basic project structure created
- Development server tested successfully
---
## 📊 Phase Details
### Phase 1: Foundation (Nuxt 4 Setup)
**Status:** ✅ Done | **Progress:** 9/10 (90%)
Tasks:
- [x] Initialize Nuxt 4 project with pnpm
- [x] Install shadcn-nuxt module
- [x] Configure Tailwind CSS v4
- [x] Setup TypeScript strict mode
- [x] Configure ESLint + Prettier
- [x] Setup Git hooks (⏭️ Skipped - deferred to Phase 11)
- [x] Create basic folder structure
- [x] Configure nuxt.config.ts
- [x] Create basic layout components
- [x] Test development server
**Note:** Docker services not started (requires manual action). All other tasks completed successfully.
[Details: tasks/01-foundation.md](./01-foundation.md)
---
### Phase 2: Database (Drizzle ORM)
**Status:** ⏳ Todo | **Progress:** 0/12 (0%)
Tasks:
- [ ] Install Drizzle ORM & PostgreSQL driver
- [ ] Configure drizzle.config.ts
- [ ] Create users table schema
- [ ] Create products table schema
- [ ] Create carts & cart_items schema
- [ ] Create orders & order_items schema
- [ ] Generate initial migration
- [ ] Apply migrations to dev DB
- [ ] Create database connection utility
- [ ] Test CRUD operations
- [ ] Setup Drizzle Studio
- [ ] Document schema decisions
[Details: tasks/02-database.md](./02-database.md)
---
### Phase 3: Authentication (Cidaas OAuth2)
**Status:** ⏳ Todo | **Progress:** 0/18 (0%)
Tasks:
- [ ] Install nuxt-auth-utils + jose
- [ ] Create PKCE generator utility
- [ ] Create Cidaas API client
- [ ] Create JWT validation utility
- [ ] Implement /api/auth/login endpoint
- [ ] Implement /api/auth/callback endpoint
- [ ] Implement /api/auth/register endpoint
- [ ] Implement /api/auth/logout endpoint
- [ ] Implement /api/auth/me endpoint
- [ ] Create useAuth composable
- [ ] Create LoginForm component
- [ ] Create RegisterForm component
- [ ] Create auth page with tabs
- [ ] Create auth middleware
- [ ] Create rate-limit middleware
- [ ] Test OAuth2 flow end-to-end
- [ ] Test session management
- [ ] Document authentication flow
[Details: tasks/03-authentication.md](./03-authentication.md)
---
### Phase 4: Products (Display & List)
**Status:** ⏳ Todo | **Progress:** 0/10 (0%)
Tasks:
- [ ] Create /api/products/index.get.ts endpoint
- [ ] Create /api/products/[id].get.ts endpoint
- [ ] Create ProductCard component
- [ ] Create ProductList component
- [ ] Create ProductDetail page
- [ ] Create products index page
- [ ] Add product images handling
- [ ] Test product display
- [ ] Optimize product queries
- [ ] Document product schema
[Details: tasks/04-products.md](./04-products.md)
---
### Phase 5: Cart (Shopping Cart)
**Status:** ⏳ Todo | **Progress:** 0/12 (0%)
Tasks:
- [ ] Create /api/cart/index.get.ts endpoint
- [ ] Create /api/cart/items.post.ts endpoint
- [ ] Create /api/cart/items/[id].patch.ts endpoint
- [ ] Create /api/cart/items/[id].delete.ts endpoint
- [ ] Create useCart composable
- [ ] Create CartItem component
- [ ] Create CartSummary component
- [ ] Create cart page
- [ ] Test cart operations
- [ ] Add cart persistence
- [ ] Optimize cart queries
- [ ] Document cart logic
[Details: tasks/05-cart.md](./05-cart.md)
---
### Phase 6: Checkout (Forms & Flow)
**Status:** ⏳ Todo | **Progress:** 0/15 (0%)
Tasks:
- [ ] Create checkout schema (Zod)
- [ ] Create CheckoutForm component
- [ ] Create AddressForm component
- [ ] Implement address pre-fill from user profile
- [ ] Create /api/checkout/validate endpoint
- [ ] Create checkout page
- [ ] Implement save address to profile
- [ ] Add form validation (VeeValidate)
- [ ] Test checkout flow
- [ ] Test address save/load
- [ ] Add error handling
- [ ] Optimize checkout UX
- [ ] Add loading states
- [ ] Test mobile checkout
- [ ] Document checkout logic
[Details: tasks/06-checkout.md](./06-checkout.md)
---
### Phase 7: Payment (PayPal Integration)
**Status:** ⏳ Todo | **Progress:** 0/12 (0%)
Tasks:
- [ ] Install PayPal SDK
- [ ] Configure PayPal credentials
- [ ] Create /api/payment/paypal/create.post.ts endpoint
- [ ] Create /api/payment/paypal/capture.post.ts endpoint
- [ ] Create /api/payment/paypal/webhook.post.ts endpoint
- [ ] Integrate PayPal button on checkout
- [ ] Implement payment success flow
- [ ] Implement payment error handling
- [ ] Test PayPal sandbox
- [ ] Add payment status tracking
- [ ] Document PayPal integration
- [ ] Test webhook handling
[Details: tasks/07-payment.md](./07-payment.md)
---
### Phase 8: Order Processing (BullMQ + X-API)
**Status:** ⏳ Todo | **Progress:** 0/15 (0%)
Tasks:
- [ ] Install BullMQ + ioredis
- [ ] Configure Redis connection
- [ ] Create order queue
- [ ] Create order worker
- [ ] Create X-API client utility
- [ ] Implement transformOrderToXAPI function
- [ ] Implement submitOrderToXAPI with retry
- [ ] Create /api/orders/index.post.ts endpoint
- [ ] Create /api/orders/[id].get.ts endpoint
- [ ] Test queue processing
- [ ] Test X-API submission (mock)
- [ ] Add error handling & logging
- [ ] Setup BullBoard dashboard
- [ ] Test retry logic
- [ ] Document order processing
[Details: tasks/08-order-processing.md](./08-order-processing.md)
---
### Phase 9: ERP Integration (NAV Product Sync)
**Status:** ⏳ Todo | **Progress:** 0/10 (0%)
Tasks:
- [ ] Create NAV ERP product schema (Zod)
- [ ] Create /api/erp/products.post.ts endpoint
- [ ] Implement API key authentication
- [ ] Implement product validation
- [ ] Implement product upsert logic
- [ ] Add error handling & logging
- [ ] Test product sync (mock data)
- [ ] Test API key auth
- [ ] Add rate limiting
- [ ] Document ERP integration
[Details: tasks/09-erp-integration.md](./09-erp-integration.md)
---
### Phase 10: i18n (Internationalization)
**Status:** ⏳ Todo | **Progress:** 0/8 (0%)
Tasks:
- [ ] Install @nuxtjs/i18n
- [ ] Configure i18n module
- [ ] Create locale files (de-DE.json, en-US.json)
- [ ] Translate all UI strings
- [ ] Create language switcher component
- [ ] Test route localization
- [ ] Test currency/date formatting
- [ ] Document i18n structure
[Details: tasks/10-i18n.md](./10-i18n.md)
---
### Phase 11: Testing & Deployment
**Status:** ⏳ Todo | **Progress:** 0/15 (0%)
Tasks:
- [ ] Setup Vitest for unit tests
- [ ] Write tests for auth utilities
- [ ] Write tests for API endpoints
- [ ] Setup Playwright for E2E
- [ ] Write E2E test: user registration
- [ ] Write E2E test: complete checkout flow
- [ ] Create Dockerfile (production)
- [ ] Create docker-compose.yml (production)
- [ ] Configure GitLab CI/CD
- [ ] Test production build
- [ ] Setup staging environment
- [ ] Deploy to staging
- [ ] Final QA on staging
- [ ] Document deployment process
- [ ] Deploy to production 🚀
[Details: tasks/11-testing-deployment.md](./11-testing-deployment.md)
---
## 📈 Progress Over Time
| Date | Overall Progress | Phase | Notes |
| ---------- | ---------------- | ------------- | ------------------------------------------------------------------------------------------- |
| 2025-01-29 | 0% | Planning | Task system created |
| 2025-10-29 | 6.6% | Phase 1 - MVP | ✅ Foundation completed: Nuxt 4, shadcn-nuxt, Tailwind CSS, ESLint, Prettier all configured |
---
## 🎉 Next Steps
1. ⚠️ **Manual Action Required:** Start Docker services
```bash
# Start Docker Desktop, then run:
docker-compose -f docker-compose.dev.yml up -d
```
2. **Start Phase 2: Database Setup**
- Read `tasks/02-database.md` for detailed tasks
- Install Drizzle ORM and PostgreSQL driver
- Create database schemas
- Generate and apply migrations
---
**Let's build this! 🚀**