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

https://github.com/leonkote/autopartsreplacementsystem

Приложение предоставляет REST API для управления автомобилями, запчастями и их заменами.
https://github.com/leonkote/autopartsreplacementsystem

aspnetcore backend-development car-parts-management clean-architecture csharp dependency-injection efcore postgresql software-architecture solid-principles web-api

Last synced: 5 months ago
JSON representation

Приложение предоставляет REST API для управления автомобилями, запчастями и их заменами.

Awesome Lists containing this project

README

          

# 🚗 Система учета замененных запчастей в автомобиле

![logo](https://i.imgur.com/tdB6F47.png)

---

Приложение предоставляет REST API для управления автомобилями, запчастями и их заменами. Разработано с использованием **.NET 8** и **Entity Framework Core**, поддерживает документирование через Swagger и автоматическое применение миграций.

## 📋 Возможности

- Управление списком автомобилей:
- Добавление автомобиля.
- Удаление автомобиля.
- Поиск автомобилей по марке, модели или диапазону годов выпуска.

- Управление списком запчастей:
- Добавление запчастей.
- Удаление запчастей.
- Получение списка запчастей.

- Управление заменами запчастей:
- Добавление записи о замене.
- Удаление записи о замене.
- Получение всех замен для конкретного автомобиля.

---

## 🛠️ Технологический стек

- **.NET 8** — платформа для создания современных приложений.
- **Entity Framework Core** — ORM для работы с базами данных.
- **PostgreSQL** — СУБД для хранения данных.
- **Functional Extensions for C#** — обработка успешных и ошибочных результатов операций.
- **Swagger** — автоматическая генерация документации для API.

---

## ⚙️ Основные сущности

### Car (Машина)
- **Id**: Уникальный идентификатор.
- **Make**: Марка автомобиля (максимум 50 символов).
- **Model**: Модель автомобиля (максимум 50 символов).
- **Year**: Год выпуска.

### Part (Запчасть)
- **Id**: Уникальный идентификатор.
- **Name**: Название запчасти (максимум 50 символов).
- **Description**: Описание запчасти (максимум 50 символов).

### PartReplacement (Замена запчасти)
- **Id**: Уникальный идентификатор.
- **CarId**: Ссылка на автомобиль.
- **PartId**: Ссылка на запчасть.
- **Date**: Дата замены (используется `DateOnly`).

---

## 🌐 API Маршруты

### Машины
- `GET /cars` — Получить список машин.
- `POST /cars` — Добавить новую машину.
- `DELETE /cars/{carId}` — Удалить машину по ID.

### Запчасти
- `GET /parts` — Получить список запчастей.
- `POST /parts` — Добавить новую запчасть.
- `DELETE /parts/{partId}` — Удалить запчасть по ID.

### Замены запчастей
- `GET /partReplacements/{carId}` — Получить все замены для автомобиля.
- `POST /partReplacements/part-replacement` — Добавить новую замену запчасти.
- `DELETE /partReplacements/part-replacement/{partReplacementId}` — Удалить запись о замене.

---

## 🔧 Локальный запуск

1. Убедитесь, что установлен **.NET 8 SDK** и **PostgreSQL**.
2. Клонируйте репозиторий:
```bash
git clone https://github.com/your-repo-name.git
cd your-repo-name
```
3. Настройте строку подключения в `appsettings.json`:
```json
{
"ConnectionStrings": {
"Db": "Host=localhost;Port=5432;Database=CarService;Username=postgres;Password=yourpassword"
}
}
```
4. Примените миграции:
```bash
dotnet ef database update
```
5. Запустите приложение:
```bash
dotnet run
```
6. Откройте Swagger-документацию по адресу: [https://localhost:7281/swagger/index.html](https://localhost:7281/swagger/index.html).

---

## 👨‍💻 Проект выполнили

- **Сырятов Максим АТ-01 - идея, тестирование, оформление**
- **Папушев Роман АТ-01 - разработка клиента**
- **Ефимов Илья АТ-01 - разработка бекенда**