mirror of
https://github.com/johndoe6345789/metabuilder.git
synced 2026-04-24 13:54:57 +00:00
auth-store.ts directly imported fetch-session, login, and register
which transitively pulled next/headers and server-only into the client
bundle, causing the Next.js 16 build to fail.
Replaced direct imports with fetch() calls to new API route handlers
at /api/auth/{login,register,session,logout}.
Co-Authored-By: Claude Opus 4.6 (1M context) <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.