MyBBCipes uses the following tools:
- Yeoman to manage the tech stack
- Node.js for the back-end
- Express to link the back-end and the database
- MongoDB for the database
- AngularJS to render a fluid AJAX front-end
- Bootstrap to render a responsive and cross-browser website
The front-end is communicating with the back-end through a REST API.
- Feature: Recipe
- Scenario: Recipe doesn't exist ✔️
- Scenario: Recipe cooking time ✔️
- Scenario: Recipe image ✔️
- Scenario: Recipe ingredients ✔️
- Feature: Recipe list
- Scenario: No recipes available ✔️
- Scenario: One recipe available ✔️
- Scenario: Select a recipe ✔️
- Scenario: Multiple recipes ✔️
- Scenario: Multiple pages of recipes ✔️
- Scenario: Navigating multiple pages of recipes ✔️
- Feature: Filter recipes
- Scenario: No results ✔️
- Scenario: Filter results by name ✔️
- Scenario: Filter results by ingredient ✔️
- Scenario: Filter by cooking time ✔️
- Feature: Star
- Scenario: Star a recipe ✔️
- Scenario: Unstar a recipe ✔️
- Scenario: No starred recipes ✔️
- Scenario: Show only starred recipes ✔️
A test version of the app is hosted on Heroku available at [https://mybbcipes.herokuapp.com/] 1.
Requirements:
First, make sure you have a MongoDB instance on your machine, then:
sudo npm install -g grunt-cli
sudo npm install -g npm
sudo npm install -g generator-angular-fullstack
sudo npm install -g bower
sudo npm install -g yo
To launch:
grunt serve
There is a request for a new food / recipe application that will help users become better at cooking. Unfortunately the product manager has dumped a bunch of specifications on you and done a runner!
Your task is to develop an application that fulfils some or all of the specification provided.
### What are we looking for?
The aim of the task is to give you the opportunity to show your skills in web development. The specification is deliberately open for that reason. If you aren't strong in front-end development or you haven't done much server-side development, don't worry... Play to your strengths!
We are also very interested in non-coding aspects and how you approach problems. Please supply any notes you make, such as showing your working, questions you might want to ask and assumptions you may have made. We also strongly recommend you use comments in any code you supply to communicate your reasoning as you work.
The server-side languages that will be accepted are:-
• JavaScript • Node.js • Python • PHP • Java
You may also pick whichever client and server side frameworks you feel are suited to the task at hand.
The features
folder contains the behavioural specifications of the application to be built. Start by reading through these feature files, they should give you a sense of what is required.
Please either:
• Check your source code into a public github repository and email the repository location to the contact email provided; OR • Create an archive (zip, tar) and send the archive via email.