Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/furkanbaran/towfinder

TowFinder is a C# project designed to help users find nearby tow operators based on city and district selection. The project utilizes ASP.NET Core 8.0 and Entity Framework Core for a robust and scalable application. The application follows the MVC (Model-View-Controller) pattern to separate concerns and ensure a modular and maintainable codebase.
https://github.com/furkanbaran/towfinder

asp-net-core-8 booking-system csharp html-css-javascript mvc

Last synced: about 1 month ago
JSON representation

TowFinder is a C# project designed to help users find nearby tow operators based on city and district selection. The project utilizes ASP.NET Core 8.0 and Entity Framework Core for a robust and scalable application. The application follows the MVC (Model-View-Controller) pattern to separate concerns and ensure a modular and maintainable codebase.

Awesome Lists containing this project

README

        

# TowFinder

TowFinder is a C# project designed to help users find nearby tow operators based on city and district selection. The project utilizes ASP.NET Core 8.0 and Entity Framework Core for a robust and scalable application. The application follows the MVC (Model-View-Controller) pattern to separate concerns and ensure a modular and maintainable codebase. This README provides a comprehensive guide to set up and run the project.

## Project Overview

This project was developed as my first C# project, aiming to meet the specific requirements and features requested. Technologies and methodologies were chosen to ensure scalability, maintainability, and ease of deployment.

## Technologies Used

- **ASP.NET Core 8.0**: The primary framework for building the web application.
- **Entity Framework Core**: Used for database operations and management.
- **Bootstrap 5**: For responsive and modern UI design.
- **MySQL**: The relational database management system used to store data.

## Features

- **User-friendly Interface**: Select city and district to find nearby tow operators.
- **Admin Panel**: Admins can approve or reject tow operator registrations.
- **Tow Operator Registration**: Tow operators can register and manage their profiles.
- **Authentication and Authorization**: Secure login for admins and tow operators.
- **Dynamic Content Loading**: Use of AJAX to dynamically load districts based on city selection.

## Run Locally with Docker Compose
Build and launch TowFinder in a local environment using Docker Compose.

```bash
git clone https://github.com/furkanbaran/TowFinder.git
cd TowFinder
docker compose up -d
```
Once the services are up, visit the application in your browser at: http://localhost:8080/

## Setup and Installation

Follow these steps to set up and run the project on your local machine.

### Prerequisites

- .NET 8.0 SDK
- Visual Studio 2022 (or later)
- MySQL Server

### Clone the Repository

```bash
git clone https://github.com/furkanbaran/TowFinder.git
cd TowFinder
```

### Configuration

1. **Database Configuration**: Update the `appsettings.json` file with your MySQL database connection details.

```json
{
"ConnectionStrings": {
"DefaultConnection": "Server=YOUR_SERVER;Database=YOUR_DATABASE;User=YOUR_USERNAME;Password=YOUR_PASSWORD;"
},
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
}
}
```
2. **Default Admin User**

A default admin user is provided for initial setup and testing purposes. The credentials are as follows:

- **Username**: admin
- **Password**: Admin123!

in [program.cs](program.cs)

It is highly recommended to change the default admin password after the first login to ensure security.

3. **Environment Variables**: Alternatively, you can set up environment variables for sensitive data.

### Restore Dependencies

Restore the project dependencies using the .NET CLI.

```bash
dotnet restore
```

### Apply Migrations

Apply the database migrations to set up the database schema.

```bash
dotnet ef database update
```

### Run the Application

Run the application using the .NET CLI.

```bash
dotnet run
```

Open your browser and navigate to `http://localhost:5000` to see the application in action.

### Project Structure

- **Controllers**: Handle incoming requests and return responses.
- **Models**: Represent the data and business logic.
- **Views**: Define the UI elements and layout.
- **ViewModels**: Transfer data between controllers and views.
- **wwwroot**: Static files such as CSS, JavaScript, and images.
- **Migrations**: Database migration files generated by Entity Framework Core.
- **Data**: Contains the application's DbContext and configuration for Entity Framework Core.
- **Entity**: Defines the application's data models and entity configurations.

## Deployed on AWS EC2 Ubuntu 22.04:
[https://towfinder.furkanbaran.com/](https://towfinder.furkanbaran.com/)
## Screenshots

![Ekran görüntüsü 2024-06-02 190652](https://github.com/FurkanBaran/TowFinder/assets/21145014/57d12f29-b3ba-4779-bb60-bd49a69a3708)
![Ekran görüntüsü 2024-06-02 190718](https://github.com/FurkanBaran/TowFinder/assets/21145014/b002b03b-f9ee-4ede-a2e7-8c2c5c20e802)
![Ekran görüntüsü 2024-06-02 190835](https://github.com/FurkanBaran/TowFinder/assets/21145014/3076dc65-0bc8-4d72-9b51-9a4b0d0a8b4d)
![Ekran görüntüsü 2024-06-02 190823](https://github.com/FurkanBaran/TowFinder/assets/21145014/07c5e360-650c-4ca9-8ebc-41acf46fe116)

## Contribution

Contributions are welcome! If you have any ideas, suggestions, or issues, please open an issue or submit a pull request.

## License

This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.

## Acknowledgements

- This project was developed as my first C# project, showcasing the learning and implementation of ASP.NET Core and Entity Framework Core. It may contain errors and is not recommended for use in production environments.