# TaxiSwede Project – Learning & Tools Summary

## What I Learned

- Built a full-stack taxi price comparison platform for Denmark and Sweden.
- Developed REST APIs with **FastAPI** and organized backend code into routes, services, models, security, and domain logic.
- Created pricing and fare-comparison logic for different cities, taxi tiers, distances, times, and booking channels.
- Used **MongoDB** for application data and learned how backend services connect to a database through environment-based configuration.
- Built cross-platform user interfaces with **React Native, Expo, and Expo Router**.
- Created web portals with **React and Vite**, including customer, driver, admin, and website experiences.
- Implemented authentication flows using OTP login and JWT-based security.
- Added role-based access control for administrators and drivers.
- Integrated payment workflows with **Stripe**, including a safe mock-payment mode for local development and CI testing.
- Practiced automated testing with unit tests, API tests, Pytest, and Gherkin/BDD scenarios.
- Learned how to make applications reliable across platforms, including Windows installation support and React Native Web compatibility.
- Configured CI/CD checks with **GitHub Actions** for backend tests and frontend production builds.
- Improved code quality by documenting API contracts, deployment instructions, testing procedures, and project architecture.

## Tools and Technologies Used

### Frontend

- React
- React Native
- Expo
- Expo Router
- Vite
- TypeScript
- React Native Web

### Backend

- Python
- FastAPI
- Uvicorn
- Pydantic
- JWT authentication
- OTP authentication
- Role-based access control

### Database and Payments

- MongoDB
- Stripe
- Stripe mock mode for development and automated tests

### Testing and Quality

- Pytest
- Behave
- Gherkin BDD
- Bun test
- TypeScript compiler (`tsc`)
- API smoke testing
- JUnit test reports

### DevOps and Development Tools

- GitHub Actions
- Git and GitHub
- npm
- Bun
- Python virtual environments
- Environment variables and `.env` configuration
- PowerShell and Windows-compatible scripts

## Project Highlights

- Designed a complete taxi fare comparison workflow.
- Added city, fare, tier, and pricing test coverage.
- Built API contracts for authentication, rides, payments, and fare comparison.
- Added CI checks for backend tests and multiple frontend builds.
- Supported local development with mock payments and debug OTP responses.
- Resolved cross-platform development issues for Windows and React Native Web.

## LinkedIn Post Draft

> I completed a full-stack taxi price comparison project for Denmark and Sweden. During this project, I learned how to build FastAPI REST APIs, create cross-platform interfaces with React Native and Expo, develop web portals with React and Vite, connect applications to MongoDB, and implement authentication, role-based access control, and Stripe payment workflows. I also gained practical experience with automated testing using Pytest, Bun, and Gherkin BDD, as well as CI/CD using GitHub Actions. This project strengthened my skills in full-stack development, API design, testing, debugging, and deployment preparation.
>
> **Technologies:** Python, FastAPI, React, React Native, Expo, TypeScript, Vite, MongoDB, Stripe, Pytest, Gherkin, Bun, GitHub Actions, and Git.

#Github Link (Not published due to Screte API Keys)
https://github.com/arbazshah52/App-developer.git


##Vercel
https://taxiswede-website.vercel.app/
https://taxiswede-driver.vercel.app/
https://taxiswede-admin.vercel.app/