Try the demo at https://doocrate2.firebaseapp.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
- Firebase Firestore
$ git clone https://github.com/metaburn/doocrate.git
$ cd doocrate
$ npm install
$ npm start
Admins can edit any task.
Import the file under
assets/database-example.json
and add the uid of the app admins
- Create a free Firebase account at https://firebase.google.com
- Create a project from your Firebase account console
- Configure the authentication providers for your Firebase project from your Firebase account console
// .firebaserc
{
"projects": {
"default": "your-project-id"
}
}
// src/firebase/config.js
export const firebaseConfig = {
apiKey: 'your api key',
authDomain: 'your-project-id.firebaseapp.com',
databaseURL: 'https://your-project-id.firebaseio.com',
storageBucket: 'your-project-id.appspot.com'
};
deploy:staging
OR
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
npm run build-staging
firebase use
and choose staging
firebase deploy
$ npm install -g firebase-tools
$ cd functions
$ npm install
$ cd ..
$ npm run build
$ firebase login
$ firebase use default
$ firebase deploy
We send emails on task comments to assignee We've used mailgun since it allows 1000 messages free per day. You need to make sure you set up Blaze-pay-as-you-go plan on firestore Don't worry on normal use cases (800 users) you probably won't pay anything Register here - https://www.mailgun.com/google
Run:
firebase functions:config:set email.send_notifications='true'
firebase functions:config:set email.from='Doocrate <noreply@midburnerot.com>'
firebase functions:config:set email.domain='midburnerot.com'
firebase functions:config:set email.apikey="Your-MailGun-Api-Key"
In order to create labels colors you need to create a collection called 'labels' with documents like so: 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"
Firestore doesnt yet support backup natively
so we use this tool npm install -g firestore-backup
by calling npm run backup
Script | Description |
---|---|
npm start |
Start webpack development server @ localhost:3000 |
npm backup |
Backup to a local database |
npm deploy:staging |
Build and deploy to staging |
npm deploy:production |
Build and deploy to production |
npm run build |
Build the application to ./build directory |
npm test |
Test the application; watch for changes and retest |