Welcome to the eDrivingSchool project! This application aims to provide a realistic simulation of tests for obtaining a driver's license, covering various vehicle categories such as cars, motorbikes, and more.
To get started with the project, follow these steps in your terminal:
-
Clone the repository:
git clone https://github.com/NedzmijaMuminovic/eDrivingSchool
-
Navigate to the Docker Compose directory:
cd eDrivingSchool/Docker-Compose
-
Run Docker Compose to set up the database:
docker-compose up
-
After the database is set up, navigate to the Go API directory in a new terminal window:
cd eDrivingSchool/Go-API
-
Install database migration tool for Go:
go install -tags 'postgres' github.com/golang-migrate/migrate/v4/cmd/migrate@latest
-
Perform migrations to populate the database with data:
migrate -database "postgres://admin:admin@localhost:5432/eDrivingSchoolDB?sslmode=disable" -path migrations up
-
Install dependencies and run the backend:
go get go run main.go
-
Open the React App directory in a new terminal window:
cd eDrivingSchool/React-App
-
Install dependencies and start the frontend:
npm install npm start
To access the app, you need to log in. Use the following credentials:
Basic User:
- Username: "user"
- Password: "user"
Admin:
- Username: "admin"
- Password: "admin"
Alternatively, create your own profile by clicking on the register option.
The project is organized into two main components:
-
Backend (Go): The backend logic is written in Go, providing the necessary APIs and data for the frontend.
-
Frontend (React): The user interface is developed using React, presenting a user-friendly experience for taking driving tests.
-
Homepage: The app features a homepage with different tests categorized by vehicle types.
-
Test Categories: Each category, such as cars or motorbikes, contains a set of questions for simulation.
-
Quiz-like Interface: Users can go through the questions and select their answers, simulating a real driving test experience.
-
Test Taking: Take timed tests and receive immediate feedback on whether you passed or failed, along with explanations.
- Admins can add new tests with new questions and options, enhancing the variety of simulated driving scenarios.
Thank you for your interest in our eDrivingSchool project! Happy coding!