How usama-kanjo/full-stacke-project works
KanjoLab is a web platform for dental practices and laboratory technicians. Its visible workflow runs from account registration or login through email verification and role/profile setup, then into role-specific dashboards; the documented product also includes prosthesis-order creation and tracking. The Next.js client calls an Express API, whose services manage authentication and profile data, PostgreSQL persistence, and email notifications. Order management is documented in the README but has no dedicated implementation path in the supplied tree, so its wiring cannot be shown. Server routing and profile-service internals were not sampled; those connections are limited to documented endpoints and visible controller calls.
Main entry points: app KanjoLab web app · database.ts PostgreSQL database · index.ts Express API server · userRoute.ts User routes
Components 25
Web client
- KanjoLab web app
client/src/app - Login and registration
client/src/components/LoginPage/LoginForm.tsx - Registration UI
client/src/components/rigisterPage/rigister.tsx - Role dashboards
client/src/components/dashboard/DashboardClient.tsx - Auth API service
client/src/services/authService.ts - HTTP API client
client/src/services/apiClient.ts
API layer
- Express API server
server/src/index.ts - User routes
server/src/routes/v1/userRoute.ts - Dentist routes
server/src/routes/v1/dentistRoute.ts - Technician routes
server/src/routes/v1/technicianRoute.ts - Auth controller
server/src/controllers/authController.ts - User controller
server/src/controllers/userController.ts - Dentist controller
server/src/controllers/dentistController.ts - Technician controller
server/src/controllers/technicianController.ts
Account and profiles
- Authentication service
server/src/services/authService.ts - User profile service
server/src/services/userService.ts - Dentist profile service
server/src/services/dentistService.ts - Technician profile service
server/src/services/technicianService.ts - Order management
server/src/services
Persistence and messaging
- PostgreSQL database
server/src/config/database.ts - Email delivery
server/src/services/emailService.ts
Other components
- Dentists
- Lab technicians
- PostgreSQL
- Gmail SMTP
Connections 27
- Dentists → KanjoLab web app: use
- Lab technicians → KanjoLab web app: use
- KanjoLab web app → Login and registration: renders
- KanjoLab web app → Registration UI: renders
- KanjoLab web app → Role dashboards: renders
- Login and registration → Auth API service: requests auth
- Registration UI → Auth API service: requests registration
- Auth API service → HTTP API client: sends requests
- HTTP API client → Express API server: calls API
- Express API server → User routes: mounts
- Express API server → Dentist routes: mounts
- Express API server → Technician routes: mounts
- User routes → Auth controller: dispatches
- User routes → User controller: dispatches
- Dentist routes → Dentist controller: dispatches
- Technician routes → Technician controller: dispatches
- Auth controller → Authentication service: calls
- User controller → User profile service: calls
- Dentist controller → Dentist profile service: calls
- Technician controller → Technician profile service: calls
- Authentication service → PostgreSQL database: reads and writes
- User profile service → PostgreSQL database: reads and writes
- Dentist profile service → PostgreSQL database: reads and writes
- Technician profile service → PostgreSQL database: reads and writes
- PostgreSQL database → PostgreSQL: connects
- Authentication service → Email delivery: sends codes
- Email delivery → Gmail SMTP: delivers email