Technology Stack
This section provides an overview of the main technologies used in TornTicker and the reasons they were chosen.
Frontendβ
π₯οΈ React (Vite)β
- Why? React is a modern, component-based JavaScript library that allows for efficient UI development and state management.
- Vite is used as the build tool because it provides:
β
Fast development server with hot module replacement (HMR)
β Optimised production builds
β Easy configuration for modern JavaScript frameworks
π¨ React-Bootstrapβ
- Why? Provides pre-built, responsive UI components that align with Bootstrapβs styling system.
- Benefits:
β
Speeds up development with ready-to-use components
β Maintains a clean, consistent UI
β Easily customisable with CSS & Bootstrap utilities
Backendβ
π FastAPIβ
- Why? FastAPI is a high-performance Python framework for building APIs.
- Key Advantages:
β
Asynchronous support for handling multiple API requests efficiently
β Automatic OpenAPI documentation
β Fast execution speeds, comparable to Node.js
π Authenticationβ
- Uses Torn API keys for authenticating requests securely.
- Implements caching to reduce unnecessary API calls.
Databaseβ
ποΈ MongoDBβ
- Why? NoSQL database optimised for flexible, document-based storage.
- Key Advantages:
β
Efficient JSON-like data storage (BSON)
β Supports high scalability for large datasets
β Indexes & TTL (Time-to-Live) support to auto-expire outdated data
External Servicesβ
βοΈ Torn APIβ
- Why? Provides real-time game data such as user stats.
- Rate Limits: API calls are limited per minute, so caching is implemented to minimise requests.
βοΈ Torion APIβ
- Why? Additional external service for limited data access.
Development & Deployment Toolsβ
π Git & GitHubβ
- Why? Version control with structured commit history.
- Benefits:
β
Branching strategy for organised development
β GitHub Actions (future CI/CD setup)
Summaryβ
| Technology | Purpose | Why Chosen? |
|---|---|---|
| React (Vite) | Frontend UI | Fast, modular development |
| React-Bootstrap | UI Styling | Prebuilt, responsive components |
| FastAPI | Backend API | Fast, async, OpenAPI support |
| MongoDB | Database | NoSQL, scalable, TTL support |
| Torn API | External Data | Provides live game stats |
| Torion API | External Data | Provides additional game stats |