How dimasdompit/skuytalk-api works
This repository implements an Express messaging API: clients enter through the server, use login or user/contact/chat routes, and receive JSON responses; chat handlers also emit socket events. The main domain stages are authentication, user management, contacts, and chat, backed by MySQL and image-upload helpers. Relationships below are limited to README/SOURCE INDEX references and shown excerpts; several route-to-controller and model-to-database links are supported by the index rather than inspected implementations.
Main entry points: mysql.js MySQL connection · main_routes.js Route dispatcher · controllers_users.js User management · auth_middleware.js JWT verification
Components 23
API entry
- Express server
app.js - Route dispatcher
src/routes/main_routes.js
Identity and users
- Auth routes
src/routes/auth_router.js - Login handler
src/controllers/controllers_auth.js - Credential lookup
src/models/model_auth.js - JWT verification
src/middleware/auth_middleware.js - User routes
src/routes/users_router.js - User management
src/controllers/controllers_users.js - User records
src/models/model_users.js
Messaging
- Chat routes
src/routes/chat_routes.js - Chat handler
src/controllers/controllers_chat.js - Chat records
src/models/model_chat.js - Contact routes
src/routes/contact_router.js - Contact handler
src/controllers/controllers_contact.js - Contact records
src/models/model_contacts.js
Persistence and media
- MySQL connection
src/helpers/mysql.js - MySQL database
- Runtime config
src/config/global.js - Image upload
src/helpers/upload.js - Image files
assets/images - JSON response helper
src/helpers/myResponse.js
Other components
- API client
- Socket clients
Connections 39
- API client → Express server: sends requests
- Express server → Route dispatcher: mounts routes
app.js - Express server → MySQL connection: loads connection
app.js - Route dispatcher → Auth routes: mounts auth
src/routes/main_routes.js - Route dispatcher → Chat routes: mounts chat
src/routes/main_routes.js - Route dispatcher → User routes: mounts users
src/routes/main_routes.js - Route dispatcher → Contact routes: mounts contacts
src/routes/main_routes.js - Route dispatcher → JWT verification: guards routes
src/routes/main_routes.js - Auth routes → Login handler: dispatches login
src/routes/auth_router.js - Auth routes → Image upload: parses form
src/routes/auth_router.js - Login handler → Credential lookup: looks up credentials
src/controllers/controllers_auth.js - Login handler → Runtime config: signs tokens with
src/controllers/controllers_auth.js - Login handler → JSON response helper: formats result
src/controllers/controllers_auth.js - JWT verification → Runtime config: verifies with keys
src/middleware/auth_middleware.js - JWT verification → JSON response helper: formats errors
src/middleware/auth_middleware.js - User routes → User management: dispatches requests
src/routes/users_router.js - User routes → JWT verification: guards routes
src/routes/users_router.js - User routes → Image upload: parses uploads
src/routes/users_router.js - User management → User records: manages users
src/controllers/controllers_users.js - User management → Credential lookup: checks username
src/controllers/controllers_users.js - User management → JSON response helper: formats result
src/controllers/controllers_users.js - User management → Image files: deletes images
src/controllers/controllers_users.js - Chat routes → Chat handler: dispatches requests
src/routes/chat_routes.js - Chat routes → JWT verification: imports guard
src/routes/chat_routes.js - Chat routes → Image upload: parses forms
src/routes/chat_routes.js - Chat handler → Chat records: reads and writes
src/controllers/controllers_chat.js - Chat handler → JSON response helper: formats result
src/controllers/controllers_chat.js - Chat handler → Socket clients: emits chat events
src/controllers/controllers_chat.js - Contact routes → Contact handler: dispatches requests
src/routes/contact_router.js - Contact routes → Image upload: parses uploads
src/routes/contact_router.js - Contact handler → Contact records: manages contacts
src/controllers/controllers_contact.js - Contact handler → JSON response helper: formats result
src/controllers/controllers_contact.js - Credential lookup → MySQL connection: queries database
src/models/model_auth.js - User records → MySQL connection: queries database
src/models/model_users.js - Chat records → MySQL connection: queries database
src/models/model_chat.js - Contact records → MySQL connection: queries database
src/models/model_contacts.js - MySQL connection → Runtime config: reads settings
src/helpers/mysql.js - MySQL connection → MySQL database: connects to
- Image upload → Image files: stores uploads
src/helpers/upload.js