Завдання: Розробити систему прокату електросамокатів з використанням мікросервісної архітектури, .NET 8.0, REST, gRPC та Blazor WebAssembly.
- Опис загальних вимог до системи
Розроблювана система прокату електросамокатів повинна мати мікросервісну архітектуру та містити наступні складові:
- Клієнтський веб-застосунок.
- API-шлюз.
- Сервіс обліку клієнтів системи.
- Сервіс обліку електросамокатів.
- Сервіс контролю сесій прокатів.
Система повинна:
- Автентифікувати користувачів.
- Реєструвати нових користувачів.
- Надавати можливість перегляду доступних електросамокатів для прокату.
- Надавати можливість починати та закінчувати оренду електросамокатів.
- Надавати користувач інформацію щодо поточної сесії прокату.
- Обраховувати вартість прокату на основі загального часу прокату та вартості одиниці часу прокату.
- Обробляти помилки в роботі будь-якого з компонентів системи.
Обов’язковою вимогою є створення документації до API-шлюзу за допомогою Swagger.
- Клієнтський веб-застосунок
Клієнтський веб-застосунок повинен бути розроблений за допомогою інструменту Blazor WebAssembly. Він повинен мати наступні можливості:
- Автентифікація користувачів за логіном та паролем.
- Реєстрація нового користувача (необхідно ввести логін та пароль).
- Перегляд доступних транспортних засобів для прокату.
- Початок та завершення прокату електросамокату.
- Перегляд часу тривалості поточної сесії прокату електросамокату.
- Обрахування загальної вартості прокату при завершення сесії прокату електросамокату.
- Інформування клієнта про помилки в обробці його запитів.
Також застосунок повинен бути адаптивним під різні розміри екранів. 3. API-шлюз
API-шлюз повинен представляти собою веб-API, що взаємодіє з клієнтським веб-застосунком за допомогою REST та з мікросервісами за допомогою gRPC. Цей компонент системи повинен оброблювати запити користувачів за допомогою звернень до мікросервісів. Функціонал API-шлюзу повинен відповідати загальним вимогам до системи. API-шлюз повинен обробляти помилки у власній роботі, а також повертати відповідні коди оброблюваних помилок в HTTP або gRPC запитах.
- Сервіс обліку клієнтів
Сервіс обліку клієнтів повинен надавати інформацію щодо облікових даних клієнів та взаємодіяти з зовнішніми системами (API-шлюзом) за допомогою gRPC. Дані клієнтів сервіс повинен зберігати у власній БД. Функціонал сервісу повинен відповідати загальним вимогам до системи.
- Сервіс обліку електросамокатів
Сервіс обліку електросамокатів повинен надавати інформацію щодо даних електросамокатів та взаємодіяти з зовнішніми системами (API-шлюзом) за допомогою gRPC. Дані електросамокатів сервіс повинен зберігати у власній БД. Функціонал сервісу повинен відповідати загальним вимогам до системи.
- Сервіс контролю сесій прокатів
Сервіс контролю сесій прокатів повинен фіксувати дані сесій прокатів, реєструвати нові сесії та змінювати не завершені сесії, надавати інформацію щодо сесій прокатів. Взаємодія сервісу з зовнішніми системами (API-шлюзом) повинна відбуватися за допомогою gRPC. Дані сесій прокатів сервіс повинен зберігати у власній БД. Функціонал сервісу повинен відповідати загальним вимогам до системи.