How venu123143/fileflowbe works
This is a Hono/Sequelize backend for a file-management product. The main user workflow enters through HTTP routes, passes authentication and validation, then reaches controllers that handle identity, file/folder operations, or uploads; repositories and services provide persistence and supporting behavior. The tree and excerpts also show token/session management, sharing, notifications, API tokens, scheduled work, and socket support. Several subsystems are represented by their exact directories because their source was not sampled; their internal call paths are therefore omitted or marked unverified.
Main entry points: auth.middleware.ts Auth Middleware · database.ts Sequelize Database · server.ts HTTP Server · routes.ts Route Registry
Components 27
HTTP API
- Route Registry
src/global/routes.ts - User Routes
src/routes/user.routes.ts - File Routes
src/routes/file.routes.ts - Upload Routes
src/routes/upload.routes.ts - Notification Routes
src/routes/notification.routes.ts
Identity & Sessions
- Auth Middleware
src/middleware/auth.middleware.ts - User Controller
src/controllers/user.controller.ts - Token Controller
src/controllers/auth.controller.ts - Auth Service
src/services/auth.service.ts - PIN Sessions
src/core/session.ts - User Repository
src/repository/user.repository.ts - API Tokens
src/controllers/api-token.controller.ts
File Management
- File Controller
src/controllers/file.controller.ts - File Repository
src/repository/file.repository.ts - Upload Controller
src/controllers/upload.controller.ts - Upload Service
src/services/upload.service.ts
Collaboration & Events
- Notification Controller
src/controllers/notification.controller.ts - Notification Queue
src/core/notification-queue.ts - Socket Service
src/services/socket.service.ts - Notification Repository
src/repository/notification.repository.ts
Persistence & Runtime
- HTTP Server
src/server.ts - Sequelize Database
src/config/database.ts - Redis Client
src/config/redis.config.ts - S3 Storage
src/config/s3.config.ts - Domain Models
src/models/index.ts - Scheduled Jobs
src/controllers/cron.controller.ts
Other components
- API Client
Connections 38
- API Client → HTTP Server: sends requests
- HTTP Server → Route Registry: mounts routes
src/server.ts - HTTP Server → Sequelize Database: connects database
src/server.ts - HTTP Server → Redis Client: connects Redis
src/server.ts - HTTP Server → Socket Service: starts sockets
src/server.ts - HTTP Server → Scheduled Jobs: registers jobs
src/server.ts - Route Registry → User Routes: mounts
src/global/routes.ts - Route Registry → File Routes: mounts
src/global/routes.ts - Route Registry → Upload Routes: mounts
src/global/routes.ts - Route Registry → Notification Routes: mounts
src/global/routes.ts - User Routes → Auth Middleware: guards routes
src/routes/user.routes.ts - User Routes → User Controller: dispatches requests
src/routes/user.routes.ts - User Routes → Token Controller: dispatches tokens
src/routes/user.routes.ts - File Routes → Auth Middleware: guards routes
src/routes/file.routes.ts - File Routes → File Controller: dispatches requests
src/routes/file.routes.ts - Upload Routes → Auth Middleware: guards routes
src/routes/upload.routes.ts - Upload Routes → Upload Controller: dispatches requests
src/routes/upload.routes.ts - Notification Routes → Auth Middleware: guards routes
src/routes/notification.routes.ts - Notification Routes → Notification Controller: dispatches requests
src/routes/notification.routes.ts - Auth Middleware → Sequelize Database: checks users
src/middleware/auth.middleware.ts - Auth Middleware → Redis Client: checks tokens
src/middleware/auth.middleware.ts - Auth Middleware → PIN Sessions: checks PIN session
src/middleware/auth.middleware.ts - User Controller → User Repository: queries users
src/controllers/user.controller.ts - User Controller → PIN Sessions: sets PIN session
src/controllers/user.controller.ts - User Controller → Auth Service: delegates auth
- Token Controller → Auth Service: delegates tokens
src/controllers/auth.controller.ts - Auth Service → Redis Client: stores access tokens
src/services/auth.service.ts - Auth Service → Sequelize Database: stores refresh tokens
- File Controller → File Repository: reads and writes
src/controllers/file.controller.ts - File Controller → Notification Queue: queues events
src/controllers/file.controller.ts - File Repository → Sequelize Database: queries files
src/repository/file.repository.ts - Upload Controller → Upload Service: delegates uploads
src/controllers/upload.controller.ts - Upload Controller → S3 Storage: uses storage
src/controllers/upload.controller.ts - Notification Controller → Notification Repository: queries notices
src/controllers/notification.controller.ts - Notification Repository → Sequelize Database: queries notices
src/repository/notification.repository.ts - Notification Queue → Sequelize Database: persists notices
- Socket Service → Redis Client: uses Redis
src/services/socket.service.ts - Sequelize Database → Domain Models: initializes models
src/config/database.ts