REST API сървър за управление на рецепти в стил Dungeons & Dragons. Приложението позволява създаване, преглед, редактиране и изтриване на рецепти, категории и съставки.
- Java 21
- Spring Boot 3.2.3
- Spring Data JPA
- Spring Security
- H2 Database
- Cloudinary (за управление на изображения)
- Swagger/OpenAPI (за API документация)
- Lombok
- Maven
- React Native
- Expo
- React Navigation
- React Native Paper
- Axios
- Cloudinary React Native SDK
- Създаване на нови рецепти
- Преглед на всички рецепти
- Преглед на детайли за конкретна рецепта
- Редактиране на съществуващи рецепти
- Изтриване на рецепти
- Качване на изображения към рецепти
- Създаване на нови категории
- Преглед на всички категории
- Редактиране на съществуващи категории
- Изтриване на категории
- Създаване на нови съставки
- Преглед на всички съставки
- Редактиране на съществуващи съставки
- Изтриване на съставки
- Клонирайте репозиторито
- Отворете проекта в IDE
- Създайте
.env
файл в коренната директория със следното съдържание:CLOUDINARY_URL=cloudinary://api_key:api_secret@cloud_name
- Стартирайте приложението:
mvn spring-boot:run
- API документацията е достъпна на:
http://localhost:8080/swagger-ui.html
- H2 конзолата е достъпна на:
http://localhost:8080/h2-console
- Навигирайте до
dnd-recipes-app
директорията - Инсталирайте зависимостите:
npm install
- Стартирайте приложението:
npx expo start
- Сканирайте QR кода с Expo Go приложението на вашия мобилен телефон
GET /api/recipes
- Връща всички рецептиGET /api/recipes/{id}
- Връща детайли за конкретна рецептаPOST /api/recipes
- Създава нова рецептаPUT /api/recipes/{id}
- Редактира съществуваща рецептаDELETE /api/recipes/{id}
- Изтрива рецепта
GET /api/categories
- Връща всички категорииGET /api/categories/{id}
- Връща детайли за конкретна категорияPOST /api/categories
- Създава нова категорияPUT /api/categories/{id}
- Редактира съществуваща категорияDELETE /api/categories/{id}
- Изтрива категория
GET /api/ingredients
- Връща всички съставкиGET /api/ingredients/{id}
- Връща детайли за конкретна съставкаPOST /api/ingredients
- Създава нова съставкаPUT /api/ingredients/{id}
- Редактира съществуваща съставкаDELETE /api/ingredients/{id}
- Изтрива съставка
src/main/java/com/dnd_recipe_api_server/recipes/
├── config/ # Конфигурационни класове
├── controllers/ # REST контролери
├── dto/ # Data Transfer Objects
├── entities/ # JPA ентитети
├── repositories/ # JPA репозитории
├── services/ # Бизнес логика
└── utils/ # Помощни класове
dnd-recipes-app/
├── app/ # React Native компоненти
├── components/ # Преизползваеми компоненти
├── hooks/ # Custom React hooks
├── services/ # API услуги
├── types/ # TypeScript типове
└── utils/ # Помощни функции
- CORS конфигурация за защита на API-то
- Валидация на входните данни
- Безопасно съхранение на изображения в Cloudinary
- Защита на Swagger UI и H2 конзолата