Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

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

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.