More-Recipes is a full stack web app that provides a platform for sharing recipe ideas that users have invented or learnt. Users can post their recipe ideas on More-Recipes and get feedback in form of reviews and votes from other users.
https://more-recipe.herokuapp.com/
Click here to view our detailed API documentation
-
Install
node
, version 5 or greater -
Install
postgres
-
Clone the repo and cd into it
git clone https://github.com/larrystone/BC-26-More-Recipes.git cd BC-26-More-Recipes
-
Install all dependencies
npm install
-
Configure Postgres
configure your database settings for development and test in `./server/config/config.json` using .env.example file template
-
Run database migrations
$ sequelize db:migrate
-
Start the app
npm start
-
Run the application on browser
http://localhost:3001/
- Create an account with username,email and password.
- Sign in with username/email and password
- Create recipes
- Modify recipes
- View recipes
- Search for recipes
- Post reviews on recipes
- Bookmark and manage bookmarked recipes
- Upvote or downvote recipes
- View/edit user profile
The app uses:
Chai
and Chai-Http
for backend testing,
Enzyme
and Jest
for frontend testing
npm run test:server
- for backend testingnpm run test:client
- for client testingnpm run test:coverage
- for client and server side test (with coverage)npm run e2e:setup
, start the server andnpm run e2e:test
- for end to end testing
- Users can only access full application features when they are logged in
- Users can neither edit nor remove reviews they post on recipe
- Password reset feature is currently not available on the app
- Users cannot deactivate their accounts
- Users will have to obtain a new token every 24 hours
All html files and stylesheets, images, bootstrap templates for the Client Side implementation are modelled in this folder. However, this is not final as it is subject to minor changes in the actual client side implementation
This folder hosts the Client Side implementation (using React/Redux) powered by the Server Side backend
This directory holds all routes, controllers, middleware, migrations that serves the backend for the app
- NodeJS - A Javascript runtime built on chrome V8 engine that uses an event-driven non-blocking I/O model that makes it lightweight and efficient.
- ExpressJs - A minimal and flexible Node.js web application framework that provides a robust set of features for web and mobile applications.
- Sequelize - An ORM for Node.js that supports the dialects of PostgreSQL and features solid transaction support an relations.
- Postgres - A powerful, open source object-relational database system.
- Semantic-ui-react - Official React integration for Semantic UI.
- React - A JavaScript library for building user interfaces by Facebook.
- Redux - A predictable state container for JavaScript apps.
If you are interested in contributing to development of this project, follow the instructions below to contribute.
-
Fork the repository
-
Make your change
-
Commit your change to your forked repository
-
Provide a detailed commit description
-
Raise a pull request against the develop branch
-
Please see Project wiki for project conventions
This project is licensed under the MIT License - see the LICENSE file for details
Anyone can! Just follow the contribution guidelines above
Yes please check the project wiki for project conventions.
Yes!. This application is licensed under MIT, and is open for
everybody
- Lawal Lanre E. (Larrystone) - Aspiring Software Dev.
- Google Material Icons
- Materialise CSS
- Jquery
- Google Graph API
- ReactJS
- ReduxJS
- Semantic UI React Library
- React Google Charts Library
- Cloudinary