FixMyCar is a comprehensive software solution developed as part of a seminar project for the Software Development II course. The platform enhances communication and operations between car repair shops, car parts shops, and clients by providing seamless interaction across all parties. The system is built with an ASP.NET Core Web API backend and a Flutter frontend.
- Desktop Applications: Tailored for car repair shops, car parts shops, and system administrators, offering essential tools to manage their services effectively.
- Mobile Application: Designed for clients, enabling convenient interaction with both car repair and parts shops.
- Integrated Platform: The system unifies all three user groups, streamlining communication, service requests, and transactions.
- Backend: ASP.NET Core Web API with Entity Framework, both the API and the SQL database are containerized using Docker.
- Frontend: Flutter (for both desktop and mobile applications).
Follow the steps below to set up and run the project.
Ensure you have the following tools installed:
- Docker: For containerizing the backend.
- Visual Studio Code: Recommended for editing and running the frontend (Flutter).
- Flutter: To run the desktop and mobile applications.
git clone https://github.com/EsrefPivcic/FixMyCar
The following environment variables are required:
- Backend:
JWT_SECRET_KEY
,STRIPE_PUBLISHABLE_KEY
andSTRIPE_SECRET_KEY
- Frontend (mobile app):
STRIPE_PUBLISHABLE_KEY
GqT8M5xVO1yGRJXIyEUeDCkIfaHT13xb93zwjKZZ+5M=
You can define these variables by either:
- Creating a
.env
file in:
- Backend:
FixMyCar/FixMyCar
- Mobile App:
FixMyCar/FixMyCar/FixMyCar.UI/fixmycar_client/lib/src/assets
- Configuring them in the command prompt or PowerShell:
- For command prompt:
set STRIPE_SECRET_KEY=stripeSecretKey
- For PowerShell:
$env:STRIPE_SECRET_KEY = "stripeSecretKey"
To start the API and other necessary services, navigate to the project's root folder (FixMyCar/FixMyCar
) and run the following command:
docker-compose up --build
The desktop applications are designed for the car parts shop, car repair shop, and system administrator roles. To run them:
- Navigate to the appropriate folder based on role:
FixMyCar.UI/fixmycar_car_parts_shop
for car parts shops.FixMyCar.UI/fixmycar_car_repair_shop
for car repair shops.FixMyCar.UI/fixmycar_admin
for the system administrator.
- Install the necessary dependencies:
flutter pub get
- Run the application:
flutter run -d windows
-
Navigate to the mobile app folder:
FixMyCar.UI/fixmycar_client
. -
Install dependencies:
flutter pub get
- If you have the .env file set up, simply run:
flutter run
- If you don’t have an .env file, you can pass the Stripe key directly:
flutter run --dart-define=STRIPE_PUBLISHABLE_KEY=yourStripePublishableKey
- To run the app on a physical device, ensure you provide the API host address:
flutter run --dart-define=API_HOST=xxx.xxx.xxx.xxx
- Username:
admin
- Password:
test
- Username:
carpartsshop
- Password:
test
- Username:
carrepairshop
- Password:
test
- Username:
client
- Password:
test
Additionally, there are several test accounts available (e.g., carpartsshop2, carrepairshop2, client2), all using the password test
.
To test payment processing, use the following details:
- Card Number:
4242 4242 4242 4242
- Expiration Date:
Any future date
- CVC:
Any three-digit number
This project is licensed under the MIT License.