Menuify is a full-stack application created by Backend and Frontend students of Turing School of Software and Design. The Menuify app allows restaurant owners the ability to easily create mobile-friendly menus to increase user experience. Instead of scrolling through a difficult to navigate pdf of a menu, a restaurant diner can view menu items in our user friendly app. This repo is one of two REST API microservices created for the Frontend to implement. This REST API utilizes the Unsplash Photo Search API and returns 10 images for the keyword searched.
- Rails Backend Repo - this repo holds our database and CRUD functionality
- Frontend Repo
- Deployed App
-
Utilize Agile methodologies, Service Oriented Architecture, and Microservices to ensure deployment of a RESTful API with MVP
-
Develop quality communication between Frontend and Backend teams, including daily stand-ups, project retros, a project board, and a JSON contract
-
Gain experience using Continuous Integration tools to build and automate the deployment of features
-
Create API microservices to support application features for our end users
-
Learn new technologies and tools (Python with FastApi Framework)
- Make sure to have Python 3.12.7 locally.
- Clone the repository
cd
into the root directory- Create virtual environment
python3 -m venv env
- Activate virtual environment
source ./env/bin/activate
- Sign up for the free Unsplash photo API https://unsplash.com/developers add Menuify under Your apps. Scroll down to find your Access key
- Create a new file called
.env
in root directory and add your secret key as an api_key i.e.api_key=123445566
- To install requirements run:
pip3 install -r requirements.txt
- To view endpoints locally run:
uvicorn main:app --reload
and navigate to url listed in terminal i.e.http://127.0.0.1:8000
- You can view the interactive docs by adding
/docs
to the url in step 5
To run the tests using Pytest, run the following commands. Results will show in the terminal.
coverage run -m pytest
coverage report -m
To see a coverage report within your browser then run.
coverage html
open htmlcov/index.html
-
Interactive docs can be found here: https://menu-ify-fastapi.herokuapp.com/docs
-
Deployed Backend Server: https://menu-ify-fastapi.herokuapp.com
-
Local Backend Server: http://127.0.0.1:8000
-
Example: Returns an array with 10 links for cheese photos. https://menu-ify-fastapi.herokuapp.com/photos/cheese
Returns 10 photo links to photos of the keyword
entered in the request
GET /photos/{keyword}
JSON Response Example:
{
"results":
[
"photo_url",
"photo_url",
"photo_url",
"...",
"..."
]
}
Emily Port |
Gabe Nunez |
Yuji Kosakowski |
Heather Faerber |
Dara Rockwell |