-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Yohann edited this page May 24, 2025
·
2 revisions
Welcome to the comprehensive documentation for Transat 2.0 Backend, the Go-based API server powering the campus application for IMT Atlantique Nantes.
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.
ποΈ 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
π§ Notification System
- Push notification service
- Email notification system
- Notification preferences
- Real-time delivery
ποΈ Database Design
- PostgreSQL schema
- Migration system
- Data models
- Relationships and constraints
π Internationalization
- 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
π§ͺ Testing & Quality
- Unit testing
- Integration testing
- Code quality tools
- Testing strategies
π Deployment & DevOps
- Docker configuration
- CI/CD pipelines
- Production deployment
- Monitoring and logging
π₯ Contributing
- Development guidelines
- Code standards
- API design principles
- Pull request process
- 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
- 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.