- About
- Features
- Preview
- Installation and running the project locally
- Publishing your own version
- Contributing
This is a personal project that is developed and delivered based on the requests of an individual named... you guessed it: Airidas.
Currently as it is mostly for their personal use, the actual website is not publicly accessible (yet?). Well, it is, but you won't be able to do anything unless you have an account (check below for a preview version though).
This section was the first implementation and is there for the user to easily create new features to be implemented on next release or report bugs.
- Ability to set priorities for the features
The first actually requested feature. It serves as a main focal storage point for recipes that can be accessed easily by the family. Instead of searching through all the different locations where you have saved your recipes you can instead create them here and either link to the recipe's page or write the recipe in the description itself.
- You are able to add multiple tags to each recipe and filter the recipes by tag.
- Anyone who has an account can create recipes and you will see who created which one, but you're only able to edit/delete your own.
- Login system
- Password reset
This is where you can test the features, however the free firestore database has a limit on how many reads/writes can be done in a day so just keep that in mind. Also I hope it's obvious that any data you insert is most likely not going to remain forever.
If something is wrong (quota reached/login not working/etc) and you'd like to test it out just contact me and we'll work something out.
At some point you will need to run yarn
in the cmd to get all the dependencies.
For the project to run you will need to configure your own firebase database.
Once you've created an account and added a project continue with the below instructions.
For authentication all you need to do is set up "Email/Password" sign-in method and add a user. You will also need to create a firestore database.
- In Firebase go to your project settings and add a web app
- Add a new file named
.env.local
to the root of the project. - Add the firebase keys to the newly created file. It should look like this (
VALUE
should not contain the quotes):
VUE_APP_FIREBASE_API_KEY_DEV = VALUE
VUE_APP_FIREBASE_AUTH_DOMAIN_DEV = VALUE
VUE_APP_FIREBASE_PROJECT_ID_DEV = VALUE
VUE_APP_FIREBASE_STORAGE_BUCKET_DEV = VALUE
VUE_APP_FIREBASE_MESSAGING_SENDER_ID_DEV = VALUE
VUE_APP_FIREBASE_APP_ID_DEV = VALUE
VUE_APP_FIREBASE_MEASUREMENT_ID_DEV = VALUE
- Make sure in firebase.ts the key names correspond to the .env.local key names
- Make sure project.config.ts is using the correct environment
There's a few collections you will need to add manually due to there not existing an interface or automation for creating them:
Document id: recipes-properties
- recipesCount
- number: 0
There is no interface for creating Priorities. You will need to add them to the database yourself following the Model structure.
Document id: 1
- label
- string: Low
- isActive
- boolean: true
You don't actually have to create this one manually as there is a hidden interface for creating RecipeTags. It is hidden because it's not production ready but it's much easier to work with than having to do the same thing as was done for Priority.
You will need to create indexes for the queries when they are first utilized (for example when first filtering by recipe tag). Just open the console and follow the link provided.
If you want to publish your own version of this project with minimal amount of configuration you will need to use netlify as your hosting provider.
Once you've set up an account:
- Add new site -> import an existing project
- Connect to github and select the fork of this project
- Basic build settings
- Build command: yarn build
- Publish directory: dist
- Deploy site
You should also add the keys created in .env.local to Environment Variables.
If you feel like contributing for some reason, go ahead! However the project is rather specific so it's probably best to discuss any changes if you don't want to waste your time.
Working node version: 14.21.2