How iam-anouar/fich-cmponents works
fichYa is a mobile time-and-attendance product with a React Native client and an Express API. Employees authenticate, record check-in/check-out events, and view attendance history; administrators manage users and work centers and inspect metrics. The backend routes requests through role/authentication guards to domain controllers and Sequelize models backed by PostgreSQL. The README describes deployment but little product behavior; relationships below rely on the sampled source and SOURCE INDEX references, so unsampled UI-to-API flows are not assumed.
Main entry points: v1.routes.js API routes · index.js Domain models · App.js App shell · LoginScreen.tsx Auth screens
Components 21
Mobile app
- App shell
frontend/src/app/App.js - App navigation
frontend/src/navigation/AppNavigator.js - Auth screens
frontend/src/screens/LoginScreen.tsx - Session state
frontend/src/context/AuthContext.js - Auth requests
frontend/src/services/authService.js - Attendance UI
frontend/src/components/dashboard/UserDashboard.js - Admin UI
frontend/src/components/dashboard/AdminDashboard.js
Backend API
- Express app
backend/src/app.js - API routes
backend/src/routes/v1.routes.js
Workforce domain
- User accounts
backend/src/controllers/user.Controller.js - Attendance records
backend/src/controllers/fichaje.Controller.js - Work centers
backend/src/controllers/centro.Controller.js - Workforce metrics
backend/src/controllers/metric.controller.js - Domain models
backend/src/models/index.js - PostgreSQL
backend/src/config/db.js
API security
- Auth and roles
backend/src/middlewares/auth.middleware.js - Request validation
backend/src/middlewares/validation.middleware.js - API key guard
backend/src/middlewares/apiKey.middleware.js - Rate limiter
backend/src/middlewares/rateLimit.middleware.js
Other components
- Employee
- Administrator
Connections 24
- App shell → App navigation: renders
frontend/src/app/App.js - App shell → Session state: provides session
frontend/src/app/App.js - App navigation → Auth screens: routes to
frontend/src/navigation/AppNavigator.js - Auth screens → Session state: uses session
frontend/src/screens/LoginScreen.tsx - Auth screens → Auth requests: imports requests
frontend/src/screens/LoginScreen.tsx - Employee → App shell: uses
- Administrator → App shell: uses
- Express app → API routes: mounts routes
backend/src/app.js - API routes → User accounts: routes requests
backend/src/routes/v1.routes.js - API routes → Attendance records: routes requests
backend/src/routes/v1.routes.js - API routes → Work centers: routes requests
backend/src/routes/v1.routes.js - API routes → Workforce metrics: routes requests
backend/src/routes/v1.routes.js - API routes → Auth and roles: protects endpoints
backend/src/routes/v1.routes.js - API routes → Request validation: validates input
backend/src/routes/v1.routes.js - API routes → API key guard: checks API key
backend/src/routes/v1.routes.js - API routes → Rate limiter: limits requests
backend/src/routes/v1.routes.js - User accounts → Domain models: reads and writes
backend/src/controllers/user.Controller.js - Attendance records → Domain models: reads and writes
backend/src/controllers/fichaje.Controller.js - Work centers → Domain models: uses models
backend/src/controllers/centro.Controller.js - Workforce metrics → Domain models: queries metrics
backend/src/controllers/metric.controller.js - Auth and roles → Domain models: loads user
backend/src/middlewares/auth.middleware.js - Domain models → PostgreSQL: configures ORM
backend/src/models/index.js - Attendance UI → Employee: serves
- Admin UI → Administrator: serves