Skip to content
Yohann edited this page May 24, 2025 · 2 revisions

Transat 2.0 Backend - API Documentation Wiki

Welcome to the comprehensive documentation for Transat 2.0 Backend, the Go-based API server powering the campus application for IMT Atlantique Nantes.

πŸ”§ About the Backend

Transat 2.0 Backend is a high-performance REST API built with Go and Fiber framework, providing essential campus services including authentication, restaurant data, washing machine management, weather information, and notification systems.

πŸ“š Documentation Sections

πŸ—οΈ Architecture & Setup

  • Project structure overview
  • Technology stack (Go, Fiber, PostgreSQL)
  • Development environment setup
  • Dependencies and configuration
  • RESTful API structure
  • Authentication endpoints
  • Service endpoints overview
  • Request/Response formats
  • JWT authentication system
  • Security middleware
  • Rate limiting and protection
  • Authorization strategies

🍽️ Restaurant Service

  • Menu management API
  • Data scraping and processing
  • Meal categorization
  • Real-time updates
  • Machine status tracking
  • Booking system API
  • Real-time notifications
  • WebSocket integration

β˜€οΈ Weather Service

  • Weather data integration
  • External API management
  • Caching strategies
  • Location-based forecasts
  • Push notification service
  • Email notification system
  • Notification preferences
  • Real-time delivery

πŸ—„οΈ Database Design

  • PostgreSQL schema
  • Migration system
  • Data models
  • Relationships and constraints
  • Multi-language support
  • Translation service
  • Google Translate integration
  • Content localization
  • Usage tracking
  • Performance metrics
  • API analytics
  • Monitoring and reporting

βš™οΈ Services & Utilities

  • Business logic services
  • Utility functions
  • Background jobs and scheduling
  • External integrations

πŸ”„ Background Jobs

  • Cron job scheduling
  • Data synchronization
  • Automated tasks
  • Job monitoring
  • Unit testing
  • Integration testing
  • Code quality tools
  • Testing strategies
  • Docker configuration
  • CI/CD pipelines
  • Production deployment
  • Monitoring and logging

πŸ‘₯ Contributing

  • Development guidelines
  • Code standards
  • API design principles
  • Pull request process

🎯 Key Features

  • High Performance: Fiber framework for fast HTTP handling
  • Security First: Comprehensive security middleware and JWT authentication
  • Real-time Updates: WebSocket support for live data
  • Scalable Architecture: Modular design with clean separation of concerns
  • Multi-language Support: Built-in internationalization with Google Translate
  • Comprehensive Monitoring: Sentry integration for error tracking
  • Database Migrations: Automated schema management with Goose
  • Background Processing: Cron jobs for scheduled tasks

πŸ› οΈ Technology Stack

  • Language: Go 1.23+
  • Framework: Fiber v2 (Express-inspired web framework)
  • Database: PostgreSQL with SQL migrations
  • Authentication: JWT with bcrypt password hashing
  • Monitoring: Sentry for error tracking and performance
  • Background Jobs: Cron scheduling for automated tasks
  • Email: SMTP integration for notifications
  • Translation: Google Translate API integration
  • Testing: Standard Go testing with testify

This wiki is maintained by the Plug'IMT development team. For questions or contributions, please refer to the Contributing section.