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 для управления автомобилями, запчастями и их заменами.
- Host: GitHub
- URL: https://github.com/leonkote/autopartsreplacementsystem
- Owner: LeonKote
- Created: 2024-11-12T12:04:28.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2025-01-21T17:40:52.000Z (9 months ago)
- Last Synced: 2025-04-01T00:01:52.799Z (7 months ago)
- Topics: aspnetcore, backend-development, car-parts-management, clean-architecture, csharp, dependency-injection, efcore, postgresql, software-architecture, solid-principles, web-api
- Language: C#
- Homepage:
- Size: 50.8 KB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 🚗 Система учета замененных запчастей в автомобиле

---
Приложение предоставляет 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 - разработка бекенда**