Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/eusha425/flavour-voyage
CS50x Final Project
https://github.com/eusha425/flavour-voyage
api-integration bootstrap dynamic-web-app edamam-api flask flask-framework food-tech ingredient-based-search python recipe-app web-app
Last synced: 5 days ago
JSON representation
CS50x Final Project
- Host: GitHub
- URL: https://github.com/eusha425/flavour-voyage
- Owner: Eusha425
- License: mit
- Created: 2023-11-14T16:36:25.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-11-24T08:02:12.000Z (28 days ago)
- Last Synced: 2024-11-24T09:17:33.700Z (28 days ago)
- Topics: api-integration, bootstrap, dynamic-web-app, edamam-api, flask, flask-framework, food-tech, ingredient-based-search, python, recipe-app, web-app
- Language: HTML
- Homepage: https://flavour-voyage.onrender.com/
- Size: 1.78 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Flavour Voyage
## π Description
**Flavour Voyage** is a Flask-based web application that helps users discover recipes tailored to their input ingredients. The app includes advanced filters for refining search results, ensuring users can easily find recipes that match their preferences.
The web app is built with modularity in mind, adhering to the principle of single-responsibility, where each HTML page serves a specific purpose. This design makes the project easier to manage and scale.
### Key Features:
- **Ingredient-Based Search**: Users can input ingredients to generate recipe suggestions.
- **Filtering Options**: Further refine search results with additional filters.
- **User Accounts**: Create and log in to save favorite recipes.
- **Dynamic Interaction**: Uses JavaScript for responsive and dynamic content updates.
- **Edamam API Integration**: Fetches recipes and nutritional data seamlessly.## Technology Stack π οΈ
### Frontend
- HTML5
- CSS3
- JavaScript
- Bootstrap for responsive design### Backend
- Python
- Flask web framework
- SQLite database for user data storage
- Edamam API for recipe data## ποΈ Project Structure
The project follows Flask's standard folder hierarchy:
```
flavour-voyage/
βββ templates/ # HTML template files
βββ static/
β βββ css/ # Stylesheet files
β βββ js/ # JavaScript files
β βββ images/ # Image assets
βββ app.py # Main Flask application
βββ database.db # SQLite database
```
The backend leverages Flask and Python for routing and logic, while JavaScript handles DOM manipulation to present user-selected recipes dynamically. Edamam's API is integrated for fetching recipe data, with default API keys stored securely in the script for out-of-the-box functionality.## API Integration π
This project uses the Edamam Recipe API to fetch comprehensive recipe data. The integration provides:
- Detailed recipe information
- Nutritional data
- Ingredient lists and quantities
- Cooking instructions### API Configuration
To run this project locally, you'll need to:
1. Sign up at [Edamam Developer Portal](https://developer.edamam.com/)
2. Obtain your API key and ID
3. Configure your credentials in the application## π₯ Demonstrations
- **Video Demo**: [Watch Here](https://youtu.be/jkae9y8z0g4)
- **Live Demo**: [Flavour Voyage](https://flavour-voyage.onrender.com/)## Future Roadmap πΊοΈ
### Short-term Goals
- Enhanced security features
- Additional API integrations
- Mobile-responsive design optimization
- User preference persistence### Long-term Goals
- Recipe recommendation system
- Social sharing features
- Multiple language support
- Advanced dietary tracking## Lessons Learned π
This project provided valuable insights into:
- Working with RESTful APIs and handling API documentation
- Building dynamic web applications with Flask
- Frontend-backend integration
- User authentication and session management
- Responsive web design principles## License π
This project is licensed under the MIT License - see the [LICENSE.md](https://github.com/Eusha425/Flavour-Voyage/blob/main/LICENSE) file for details.