Logo Lanfrica

BiniyamTG/Injera-Beyond

Type de record:

software
Créateur:
Bin
Hôte:
A FastAPI and MongoDB-based RESTful API for exploring Ethiopian cuisine, designed for tourists. # Injera & Beyond API A FastAPI and MongoDB-based RESTful API for exploring Ethiopian cuisine, designed for tourists. It provides full CRUD operations for foods and drinks, with features like random suggestions, regional filtering, user favorites, and cultural trivia. ## Features - **Food & Drink Details**: Manage dishes/drinks with name, region, description, ingredients, difficulty, spicy level, vegetarian options, Amharic names, photos, and restaurant suggestions. - **Random Suggestions**: `/recommendation/random`, `/foods/random`, `/drinks/random` for discovering new items. - **Regional Recommendations**: `/recommendation/by-region/{region}` to explore cuisine by Ethiopian region. - **Favorites & History**: Users can save favorites (`/favorites/{item_id}`) and track tried items (`/tried/{item_id}`), with retrieval endpoints (`/favorites`, `/tried`). - **Cultural Trivia**: Fun facts about dishes/drinks (e.g., "Doro Wat is served during festivals"). - **Multi-Language**: Supports English and Amharic via `lang=am` query parameter. - **Filters**: Vegetarian and spicy level filtering (`/foods?vegetarian=true&spicy_level=hot`), popularity sorting (`/foods/popular`, `/drinks/popular`). - **Geolocation**: `/recommendation/nearby?lat={lat}&lon={lon}` suggests foods within 10km (requires lat/lon in restaurant data). - **Rating System**: Rate foods/drinks (`/foods/{id}/rate`, `/drinks/{id}/rate`, 1-5 scale). - **Social Sharing**: Generate shareable text (`/foods/{id}/share`, `/drinks/{id}/share`). - **Daily Suggestion**: `/recommendation/daily` for a daily food/drink pick. - **Quiz Mode**: `/foods/quiz` for an interactive ingredients-based quiz. - **Authentication**: JWT-based user authentication for protected endpoints (`/users/login`, `/users`). ## Tech Stack - **Framework**: FastAPI - **Database**: MongoDB (via Motor for async operations) - **Authentication**: JWT with bcrypt password hashing - **Dependencies**: `fastapi`, `uvicorn`, `motor`, `pydantic`, `pymongo`, `p …

Languages