ThriftX is a full-stack vehicle marketplace application built to enable users to buy and sell used vehicles with ease.
The project consists of a React Native Expo frontend and a Spring Boot backend, containerized with Docker, deployed to Kubernetes via GitHub Actions, and monitored with Prometheus & Grafana.
-
📱 React Native Mobile Frontend
- Modern, responsive UI with animations
- Vehicle listing, filtering, and search
- User signup, login, and profile management
- Post ads with images, descriptions, location, etc.
-
⚙️ Spring Boot Backend API
- Secure RESTful APIs for users, ads, and messages
- JWT-based authentication
- Resource validation and error handling
-
🐳 Docker & Kubernetes
- Backend containerized using Docker
- CI/CD pipeline using GitHub Actions
- Deployed on Kubernetes cluster
-
📊 Monitoring
- Prometheus for metrics collection
- Grafana dashboards for real-time observability
ThriftX/
├── frontend/ # React Native Expo project
│ ├── App.js
│ └── ...
└── ThriftX-Backend/ # Spring Boot backend project
├── src/
└── ...
cd ThriftX
npm install
npm startMake sure you have Expo CLI installed (
npm install -g expo-cli).
cd ThriftX-Backend
./mvnw spring-boot:runJava 17+ and Maven Wrapper are required.
- GitHub Actions automates:
- Backend testing and Docker image build
- Pushing image to Docker Hub
- Kubernetes deployment with
kubectl
- Prometheus scrapes backend metrics
- Grafana visualizes API performance, resource usage, and health metrics
- Frontend: React Native, Expo, AsyncStorage, Recharts
- Backend: Spring Boot, Spring Security, JPA, PostgreSQL
- DevOps: Docker, GitHub Actions, Kubernetes, Helm (optional)
- Monitoring: Prometheus, Grafana
MIT License © 2025 Chad-007
Pull requests are welcome! For major changes, please open an issue first to discuss.
For inquiries or feedback: alansebastian484@gmail.com