How matheusmendesl/habit-tracker works
This is a microservice backend for habit and routine tracking, with user accounts, social features, and activity statistics. A client reaches the Go gateway, which exposes versioned API routes; service implementations provide the domain operations and persistence. Authentication is a separate Node service handling signup, login, and token lifecycle. The tree also includes an Angular frontend, but its sampled routes are empty. Relationships for unsampled service internals and gateway clients are omitted where call ownership could not be verified.
Main entry points: routes.go Gateway routes · auth_service.js Auth operations · repository Tracking repositories · handler Tracking handlers
Components 28
API gateway
- Gateway routes
backend/gateway/internal/routes/routes.go - User handler
backend/gateway/internal/handlers/user/user_handler.go - Habit handlers
backend/gateway/internal/handlers/habit/habit_handler.go - Routine handler
backend/gateway/internal/handlers/habit/routine_handler.go - Social handler
backend/gateway/internal/handlers/social/social_handler.go - Stats handler
backend/gateway/internal/handlers/stats/stats_handler.go - Service clients
backend/gateway/internal/clients
Identity
- Auth routes
backend/services/auth-service/src/routers/auth_router.js - Auth controller
backend/services/auth-service/src/controllers/auth_controllers.js - Auth operations
backend/services/auth-service/src/internal/service/auth_service.js - User repository
backend/services/auth-service/src/internal/repository/user_repository.js - User database
backend/services/auth-service/src/config/database.js - Refresh-token store
backend/services/auth-service/src/config/redis.js
Habit tracking
- Habit service
backend/services/habit-service/internal/service/habit_service.go - Routine service
backend/services/habit-service/internal/service/routine_service.go - Tracking handlers
backend/services/habit-service/handler - Tracking repositories
backend/services/habit-service/internal/repository - Tracking database
backend/services/habit-service/db
Social and stats
- Social service
backend/services/social-service/internal/service/social_service.go - Social handler
backend/services/social-service/handler/social_handler.go - Social database
backend/services/social-service/db - Stats service
backend/services/stats-service/internal/service/stats_service.go - Stats handler
backend/services/stats-service/handler/stats_handler.go - Stats database
backend/services/stats-service/db
User service
- User service
backend/services/user-service/internal/service/user_service.go - User handler
backend/services/user-service/handler/user_handler.go - User database
backend/services/user-service/db
Other components
- API client
Connections 22
- API client → Gateway routes: sends requests
- Gateway routes → User handler: dispatches user
- Gateway routes → Habit handlers: dispatches habits
- Gateway routes → Routine handler: dispatches routines
- Gateway routes → Social handler: dispatches social
- Gateway routes → Stats handler: dispatches stats
- Auth routes → Auth controller: dispatches auth
- Auth controller → Auth operations: calls operations
- Auth operations → User repository: queries users
- User repository → User database: reads and writes
- Auth operations → Refresh-token store: stores tokens
- Tracking handlers → Habit service: handles habits
- Tracking handlers → Routine service: handles routines
- Habit service → Tracking repositories: uses repository
- Routine service → Tracking repositories: uses repository
- Tracking repositories → Tracking database: reads and writes
- Social handler → Social service: handles requests
- Social service → Social database: persists data
- Stats handler → Stats service: handles requests
- Stats service → Stats database: reads and updates
- User handler → User service: handles requests
- User service → User database: reads and writes