How nhatpham12/visitalk works
VISITALK combines a React sign-language learning and translation experience with an Express/MySQL backend and a Python gesture-inference process. The main user flow is webcam capture and feature submission for prediction, followed by translated text; users can also study lessons, while admins manage accounts, lessons, and reports. The README documents landmark extraction, gesture stabilization, and reporting details not present in the sampled source, so those are represented at the documented subsystem level. Several route/controller implementations were not sampled; their paths and broad capabilities follow the repository tree and README.
Main entry points: index.js Express API · App.jsx App routing · api.js API client · auth.controllers.js Auth and sessions
Components 28
React client
- App routing
frontend/src/App.jsx - Live translation
frontend/src/pages/Translate.jsx - Learning pages
frontend/src/pages/Learning.jsx - Admin dashboard
frontend/src/pages/Admin.jsx - Lesson management
frontend/src/pages/LessonsControl.jsx - Habit tracker
frontend/src/pages/HabitTracker.jsx - API client
frontend/src/services/api.js
Identity and accounts
- Auth context
frontend/src/context/authContext.jsx - Auth routes
backend/routes/auth.routes.js - Auth and sessions
backend/controllers/auth.controllers.js - User administration
backend/routes/users.routes.js - User records
backend/models/users.model.js - Session records
backend/models/userSessions.model.js
Learning and habits
- Lesson API
backend/routes/lessons.routes.js - Lesson records
backend/models/lessons.model.js - Lesson access tracking
backend/routes/accessTo.routes.js - Habit API
backend/routes/habits.routes.js - Habit operations
backend/controllers/habits.controllers.js - Habit records
backend/models/habits.model.js
Backend services
- Express API
backend/index.js - Reports API
backend/routes/report.routes.js - Reporting
backend/controllers/report.controllers.js - MySQL database
Gesture inference
- Prediction endpoint
backend/routes/predict.routes.js - Python inference
backend/predict_server.py - Gesture model
Other components
- Learner
- Administrator
Connections 38
- Learner → App routing: uses
- Administrator → App routing: uses
- App routing → Auth context: provides auth
- App routing → Live translation: routes to
- App routing → Learning pages: routes to
- App routing → Admin dashboard: routes to
- App routing → Lesson management: routes to
- App routing → Habit tracker: routes to
- Live translation → API client: submits features
- Learning pages → API client: requests lessons
- Admin dashboard → API client: manages users
- Lesson management → API client: manages lessons
- Habit tracker → API client: manages habits
- API client → Express API: calls API
- Express API → Auth routes: mounts routes
- Express API → User administration: mounts routes
- Express API → Lesson API: mounts routes
- Express API → Lesson access tracking: mounts routes
- Express API → Habit API: mounts routes
- Express API → Reports API: mounts routes
- Express API → Prediction endpoint: mounts routes
- Auth routes → Auth and sessions: dispatches auth
- Auth and sessions → User records: reads and writes
- Auth and sessions → Session records: creates sessions
- User administration → User records: reads and writes
- Lesson API → Lesson records: reads and writes
- Lesson access tracking → MySQL database: records access
- Habit API → Habit operations: dispatches
- Habit operations → Habit records: reads and writes
- Reports API → Reporting: dispatches
- Reporting → MySQL database: queries statistics
- User records → MySQL database: queries
- Session records → MySQL database: queries
- Lesson records → MySQL database: queries
- Habit records → MySQL database: queries
- Prediction endpoint → Python inference: sends features
- Python inference → Gesture model: loads model
- Python inference → Prediction endpoint: returns prediction