You can read more about it in https://website.doocrate.com/
Try the demo at https://staging.doocrate.com A task management system which allows user to self assign themself So normally you don't have permission unless you create a task or assign yourself to a task. This allows organization to manage tasks in a TEAL way
- React, Redux, Thunk, React Router, Node
- Firebase Firestore
NVM Node v10.19.0
source ./intall.sh
or
git clone https://github.com/metaburn/doocrate.git
cd doocrate
nvm use
yarn
cd functions
npm install
cd ..
yarn run copy-staging
yarn global add firebase-tools
nvm use
yarn run
yarn run deploy:staging
OR
yarn run deploy:production
Will build - use the correct config file and deploy
You can also set staging env and use:
firebase use --add
to add your staging site
Then run like
yarn run build-staging
firebase use staging
yarn run deploy:staging
cd functions
npm install
cd ..
yarn
firebase login
firebase use default
yarn run deploy:production
// And if you want only to deploy without building you can run firebase deploy
You can use the following to deploy faster
yarn deploy:staging-only-server
Only If you are interested in setting up your own server (That is your own doocrate.com on a different domain)- read Setting Up your own server
You can find translations under public/locales/
You can open the page with the required language. For example use
http://localhost:3000/sign-in/?lng=he
to open the hebrew version
http://localhost:3000/sign-in/?lng=en
to open the english version
Rules are a way to restrict access to the database and give different users different permissions For example - Anyone can create a task. But only a task creator (And assignee)can edit a task
Whenever you publish the project the firestore.rules
page would get updated
Then hit Publish
to save it
After the system is up: Create a new task And also create a new comment. If you open the console you would get a link with something like:
database.js:944 Uncaught Error in onSnapshot: Error: The query requires an index. You can create it here: https://console.firebase.google.com/project/doocrate-2018/database/firestore/indexes?create_index=Eghjb21tZW50cxoKCgZ0YXNrSWQQAhoLCgdjcmVhdGVkEAIaDAoIX19uYW1lX18QAg
Click that link to create the indexing for it
Create a collection named
labels
In order to create labels colors you need to create a collection called 'labels' with documents like so:
Set for Document Id
- The actual tag name - for example - "art"
Then inside have a field "name" with value "art" and another field "colorInHex" with color value. For example "EB1478" - This will color all label of type "art" with color "EB1478"
To update the schema, you can load the Schema.xml file into draw.io Docs
Under src/config/app-config
you have the popular labels that would appear when someone creates a task
Downloag gcloud: https://cloud.google.com/sdk/docs/downloads-versioned-archives
To backup you first need to create a new multi regional bucket - for example - doocrate-new-backups
Then, Run the following command to backup -
gcloud alpha firestore export gs://doocrate-new-backups
Import all by calling gcloud alpha firestore import gs://[BUCKET_NAME]/[EXPORT_PREFIX]/
where [BUCKET_NAME]
and [EXPORT_PREFIX]
point to the location of your export files. For example - gcloud alpha firestore import gs://exports-bucket/2017-05-25T23:54:39_76544/
Import a specific collection by calling: gcloud alpha firestore import --collection-ids='[COLLECTION_ID_1]','[COLLECTION_ID_2]' gs://[BUCKET_NAME]/[EXPORT_PREFIX]/
You can user the /admin/dashboard
page if you are an admin to set permissions
You can press on the button their - This would go over all the users in the system and would set the
"canCreateTask, "canAssignTask" permissions which allows to create new tasks and assign / unassign themself
Script | Description |
---|---|
yarn start |
Start webpack development server @ localhost:3000 |
yarn backup |
Backup to a local database |
yarn run deploy:staging |
Build and deploy to staging |
yarn run deploy:production |
Build and deploy to production |
yarn run build |
Build the application to ./build directory |
yarn test |
Test the application; watch for changes and retest |
User is the root for a task. Each task exists within a project
Admins can edit any task under a project.
Once a user creates a new project he is added into the admins
admins
->user id
->projects
->project id
This helps us know which admin belongs to which projects
Super Admins can edit any task under ANY project. These are root level admins. They are defined manually in the collection super_admins -> UID
Check that you are on the blaze
(Pay as you go) plan.
Otherwise external services such as mailgun aren't accessible. Don't worry.
Firebase won't charge money unless you have > 10000 users from our calculations
Also, Check that all the settings are correct and you have created a mailgun username and set up the domain correctly
Yes /:project-id/reports
Yes. /admin-dashboard
/databases/(default)' is not a valid HTTP header field value.
1.Make sure you set up Firestore database by activating it in firebase console
2.Make sure that your config doesnt have a wrong char such as \n in the end: `projectId: 'doocrate-production\n',
Located under the functions
folder (This is firebase standard)
If you haven't modified the functions folder you can run the following to deploy only the app without the functions:
yarn run build && firebase deploy --only=hosting
Only when there is at least one task it would stop running - Press on add task
Yes - under src->config->app-config
set the parameter isSystemClosed
to true
Yes - Each project now has ability to set it under edit project page
Check you console. You need to follow the error using the link and create an index for comments
Yes run
yarn run build
firebase deploy --hosting
Yes done through a cookie is_redirected
and a url for example ?project=adacontra-2019
Make sure you use the correct node by running:
nvm use
Yes we do. We also have firestore rules unit tests yarn run test:firestore-rules