You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+11-8Lines changed: 11 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,10 +1,9 @@
1
1
# F1DataLab - A Formula 1 Data Visualization Site
2
2
3
-
_This project is under active development. Future features will include a driver-to-driver comparison tool to analyze lap times, race positions, and other key performance metrics._
4
3
5
4
_The current dataset is historical and does not contain the latest racing data. Future updates will incorporate more recent results._
@@ -18,19 +17,23 @@ The application provides an interactive experience for exploring Formula 1 data
18
17
***Driver Analytics:** Analyze driver performance, career milestones, and year-over-year results with intuitive graphs.
19
18
***Constructor Insights:** View detailed statistics and performance data for F1 constructors across different seasons.
20
19
20
+
## Technology Stack
21
+
22
+
***Frontend:** Next.js 14 with TypeScript, Tailwind CSS, and Recharts for data visualization
23
+
***Backend:** Fastapi REST API with SQLAlchemy ORM
24
+
***Database:** MySQL for structured F1 racing data
25
+
21
26
## Containerization & Deployment
22
27
23
28
The entire application is containerized using Docker, ensuring consistency across development and production environments.
24
29
25
-
***Container Orchestration:** Docker Compose is used to define and manage the multi-container application stack (frontend, backend, database, and reverse proxy).
30
+
***Container Orchestration:** Docker Compose is used to define and manage the multi-container application stack (frontend, backend, and database).
26
31
27
-
***Efficient Production Builds:** The production environment utilizes a multi-stage Docker build strategy.
28
-
1. The Next.js frontend is built once into a lean, production-ready image.
29
-
2. The Nginx image is then created by copying only the necessary static assets (`.next/static` and `public`) from the pre-built frontend image. This results in a small, secure, and highly efficient Nginx container that serves the static content.
32
+
***Efficient Production Builds:** The production environment utilizes multi-stage Docker builds to create optimized, production-ready images for both the Next.js frontend and Flask backend.
30
33
31
34
***Reverse Proxy & SSL:**
32
-
*[**Nginx**](https://www.nginx.com/) serves as the reverse proxy, directing traffic to the appropriate frontend or backend service.
33
-
*[**Let's Encrypt**](https://letsencrypt.org/)is used to automatically provision and manage SSL certificates, ensuring all traffic is served over HTTPS.
35
+
*[**Traefik**](https://traefik.io/) serves as the modern cloud-native reverse proxy with automatic service discovery via Docker labels.
36
+
*[**Let's Encrypt**](https://letsencrypt.org/)integration provides automatic SSL certificate provisioning and renewal, ensuring all traffic is served over HTTPS.
0 commit comments