Skip to content

nikola-kovacevic/api-framework

Repository files navigation

API framework structure for SaaS projects

PROVIDED FUNCTIONALITY

  1. Winston logs
    • Console transport
    • File transport
    • DB transport
    • Correlation for distributed tracking
    • Logs unhandled rejections and exceptions
  2. Morgan logs for HTTP tracking
    • Implements Morgan
    • Writes to file
    • Daily log file rotation
  3. Cache service
    • Cache manager
    • Redis store
    • Cache service
  4. MongoDB connection
    • Implements Mongoose connection
    • Listeners for connect and disconnect events
    • Logging on development environment
  5. Provided Docker images
    • MongoDB
    • Redis
    • Node.js
  6. Request & Response Interceptors
    • Measure execution time with Performance API
    • Automated logging of events
    • Distributed tracing via correlation
  7. User management
    • JWT token strategy
    • Authentication guards
    • Authorization guards
    • Password encryption
    • CRUD operations
  8. Exception management
    • Provides standardized response to client
    • Provides correlation
  9. Log inspection
    • Filter and read logs
    • Retention
  10. Administrative application management
    • Manually clear cache
    • Enable / disable cache
  11. Mail service
    • Gmail Nodemailer connection
    • Email templates (i.e. activation, system message, password reset)
  12. Translate service
    • Get the translation from file
    • Returns default language translation if none found
    • Accepts lang query param, or accept-language header
  13. Recaptcha service
    • Recaptcha authentication

USED ENVIRONMENT VARIABLES

Core API needs following environment variables to function properly.

ENVIRONMENT VARIABLE Type EXPLANATION
MONGO_URL String database URL
MONGO_DB_NAME String database name
MONGO_PASSWORD String database password
MONGO_USER String database user
APP_NAME String application name
REDIS_HOST String Redis host
REDIS_PORT Number Redis port
ENCRYPTION_KEY String Encryption key
CONTACT_EMAIL String Contact email
RECAPTCHA_KEY String Google recaptcha key
FRONTEND_URL String Frontend URL
NODE_ENV String Node.js environment
PORT String Application port

About

API framework for SaaS projects

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published