Foodfy
Take your culinary skills to the next level. Cook, Explore & Manage Recipes.
๐ Table of Contents
- Features
- Installation
- Getting Started
- FAQ
- Found a bug? Missing a specific feature?
- Contributing
- License
๐ Features
- ๐ฉ๐ฝโ๐ณ Explore recipes and find amazing chefs.
๐ Create an account to manage recipes, chefs and users.๐จ As an administrator of the platform, you're able to invite other users.- ๐ Multi language support - English and Portuguese.
- ๐จ A cool dark mode theme toggle.
Obs: The admin platform isn't all translated yet.
๐ท Installation
You need to install Node.js and Yarn first, then in order to clone the project via HTTPS, run this command:
git clone https://github.com/LauraBeatris/foodfy.git
SSH URLs provide access to a Git repository via SSH, a secure protocol. If you have a SSH key registered in your Github account, clone the project using this command:
git clone [email protected]:LauraBeatris/foodfy.git
Install dependencies
yarn install
Create your environment variables based on the examples of .env.example
cp .env.example .env
After copying the examples, make sure to fill the variables with new values.
๐ Getting Started
Running with docker-compose
In order to prepare the database and also run the application, set your environment variables and then execute docker-compose
docker-compose up
With this command, the port seted in your environment PORT
variable will be available to access the application.
Manually setup
You may prefer to manually configure the database and the application.
Install Postgres to create a database or if you have Docker in your machine, fill the environment values related to database configurations and the run the following commands in order to create a postgres container.
docker-compose up postgres
Execute the follow command to create tables, relationships and procedures:
yarn db:create
To start, run the seeds provided in Seeds in order to populate the database with an initial data.
yarn run:seeds
Run the following command in order to start the application in a development environment:
yarn dev
๐ฎ Faq
Question: What are the technologies used in this project?
Answer: The tecnologies used in this project are NodeJS + Express Framework to handle the server, Nunjucks to develop amazing views & SCSS to handle the styles architecture and a better maintenance than normal CSS.
Question: How the multi language support is handled by the server?
Answer: This application handle multi language support with the help of a library called i18n-node. It has a middleware that gather language settings of visitors and then persist translations from JSON files related with a specific locale.
The locale is storaged as a cookie named foodfy:locale
and that can be changed by passing a query string with the value ?lang=pt
Question: Are all kind of users able to create and update chefs or recipes?
Answer: The application has two kind of users: Visitors and Administrators. As a administrator, you're able to create, update and view all the data related to recipes, chefs and also other users. Visitors can also access the admin platform but they don't have access to the views responsable to create and update data.
๐ Issues
Feel free to file a new issue with a respective title and description on the the Foodfy repository. If you already found a solution to your problem, i would love to review your pull request! Have a look at our contribution guidelines to find out about the coding standards.
๐ Contributing
Check out the contributing page to see the best places to file issues, start discussions and begin contributing.
๐ License
Released in 2020. This project is under the MIT license.
Made with love by Laura Beatris