Academic project developed for the course Agile Software Development Processes
Universidad de los Andes – 2025
🎥 Demo (Video)
A short presentation of the MVP in action (navigating recipes, editing ingredients, and generating purchase lists per restaurant):
Demo.mp4
4201Software is developing Recetario, a web application designed to manage recipes, ingredients, and menus across a restaurant chain.
In the initial version, the restaurant administrator can:
- View the list of registered recipes.
- Add, edit, or delete existing recipes.
- Access the ingredient list (name, unit, cost, calories, supplier, etc.).
- Add new ingredients or edit existing ones (if they are not used in recipes).
- Plan a recipe preparation for a specific number of people, displaying:
- Calories per serving.
- Total ingredient cost.
- Proportional ingredient quantities.
- Detailed preparation steps.
To prepare for an investor presentation, 4201Software aims to evolve this prototype into a fully functional Minimum Viable Product (MVP) that can be used by multiple restaurants in a chain.
-
Manage Multiple Restaurants
- Register and manage multiple restaurants.
- Associate chefs and administrators with each location.
- Enable recipe sharing between restaurants.
-
Purchase Management per Restaurant
- Select a weekly menu.
- Calculate required ingredients and quantities based on projected dishes.
- Generate purchase lists and cost estimates.
-
Data Analytics for Purchase Management
- Suggest suppliers based on location, cost, quality, and availability.
- Provide analytics to improve ingredient sourcing decisions.
| Component | Tool |
|---|---|
| Backend | Python + Flask |
| Frontend | Angular |
| Database | SQLite |
| Version Control | Git |
| Remote Repository | GitHub |
| Continuous Integration (CI/CD) | GitHub Actions, Jenkins |
| Documentation | GitHub Wiki |
| Project Management | Jira |
The system is divided into two main components:
-
Backend (Flask API)
Provides REST endpoints to manage users, restaurants, recipes, and ingredients.
Uses SQLAlchemy as ORM and follows test-driven development (TDD) principles withunittest. -
Frontend (Angular)
Interactive web application allowing administrators and chefs to manage recipes and ingredients, visualize analytics, and plan weekly menus.
This project includes:
- Unit and integration tests using
unittest. - Continuous integration pipeline with GitHub Actions, automatically running tests on every push and pull request.
- Optional Jenkins integration for automated deployments.
| Full Name | GitHub Username |
|---|---|
| Juan David Rios | @juandarn |
| Laura Carretero | @lauths12 |
| Daniel Diaz | @ddi4z |
| Maycol Avendaño | @maycolan |
The development process follows an iterative agile approach based on Scrum, divided into three iterations:
-
Iteration 1 – Planning and Setup
- Define user stories and product map.
- Set up environment, repository, and CI/CD pipelines.
-
Iteration 2 – MVP Development
- Implement the Flask backend and database.
- Integrate backend with Angular frontend.
- Write initial unit tests.
-
Iteration 3 – Refinement and Final Presentation
- Refactor and expand testing.
- Improve UI/UX and prepare final MVP demo.
All project documentation and management artifacts are available in the GitHub Wiki, including:
- User stories and product roadmap.
- Installation and deployment guides.
- Test results and coverage reports.
- Iteration plans and retrospectives.
git clone https://github.com/your-username/recetario.git
cd recetariocd backend
pip install -r requirements.txt
flask runcd ../frontend
npm install
ng serveVisit in your browser:
👉 http://localhost:4200
✅ Initial functional Flask backend.
✅ Configured unit testing with unittest.
✅ Continuous integration via GitHub Actions.
🤝 Contributions
Due to organizational policies of Universidad de los Andes, where this repository was originally created, forks and external pull requests are not allowed. Therefore, public contributions cannot be made directly to this repository.