mirror of
https://github.com/johndoe6345789/metabuilder.git
synced 2026-04-28 07:44:56 +00:00
Phase 1 (DBAL Foundation): ALREADY DONE ✅ - DBAL exports getDBALClient(), seedDatabase(), getPrismaClient() - All factories and Prisma initialization in DBAL Phase 2.1 (Unified Integration Point): COMPLETE ✅ - Created /frontends/nextjs/src/lib/db-client.ts - Exports unified `db` instance and `getDB()` factory - Single source of truth for database access in frontend Support Artifacts: - Created /TD_1_REFACTORING_GUIDE.md with step-by-step refactoring instructions - Documents exact patterns to replace 14 Prisma imports + 110+ getAdapter() calls - Provides 3 implementation approaches (automated, manual, git-based) - Includes verification checklist and testing strategy Updated TECH_DEBT.md: - References new refactoring guide - Shows Phase 1 is done, Phase 2 ready for execution - Clear instructions for Phase 2 frontend cleanup - Phase 3 build system updates Scope: Ready to refactor ~100 frontend files to use new db-client pattern. Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Source Code (src/)
This directory contains the main React application source code for MetaBuilder's frontend.
Structure
- components/ - React UI components organized by feature and level
- lib/ - Utility libraries, database access, authentication, and business logic
- hooks/ - Custom React hooks for state management and side effects
- types/ - TypeScript type definitions
- styles/ - Global stylesheets (SCSS)
- tests/ - Component and unit tests
- seed-data/ - Initial database population scripts
Key Files
main.tsx- Application entry pointApp.tsx- Main application component with 5-level architecture logicindex.scss- Global styles (imports all component styles)
Architecture
The application uses a 5-level permission system:
- Level 1 (Public) - Unauthenticated access
- Level 2 (User) - Basic authenticated user
- Level 3 (Admin) - Administrative functions
- Level 4 (God) - Advanced system functions
- Level 5 (Supergod) - Complete system control
Permission checking is handled in lib/auth.ts and enforced throughout the component hierarchy.
Technologies
- React 18+ - UI framework
- TypeScript - Type safety
- Tailwind CSS - Styling
- Prisma ORM - Database access
- Shadcn/ui - UI component library
- Vite - Build tool
Development
# Install dependencies
npm install
# Start development server
npm run dev
# Build for production
npm run build
# Run tests
npm run test
Database
The application uses Prisma ORM with SQLite/PostgreSQL. Database schema is defined in prisma/schema.prisma and migrations are managed through prisma/migrations/.
Adding New Features
- Define data model in
prisma/schema.prisma - Create Prisma migration:
npm run db:migrate - Build components in
components/ - Implement business logic in
lib/ - Add permissions check via
canAccessLevel() - Test at appropriate permission levels
See /docs/ for comprehensive development guides.