Giter VIP home page Giter VIP logo

doocrate's People

Contributors

0xori avatar carloscuatin avatar dependabot[bot] avatar franciscofsales avatar guyavraham avatar jurij avatar matanzr avatar nimast avatar nirbenita avatar psychuil avatar r-park avatar rootux avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

doocrate's Issues

Add a custom field type - [6h-12h]

Description

As an project admin - we can set custom fields. Currently, they are only free text.
(See image from editing a project to see the current state) - תאריך, שם ההתארגנות
Screen Shot 2020-08-12 at 17 08 02

We want to support adding custom field types - specifically "Multiple choice" (select) with known entries.
Also we want to be able to later on filter by that custom field.

TLDR -

  • Add custom field type
  • We can set it to be “Multiple choice”
  • Default is “Short Text”
  • We can checkbox whether or not to filter by it

Show on front page - should be "Allow filtering" - Seting this to true should show this field under the filter area
Screen Shot 2020-08-12 at 15 36 50

Add color for label

Each label would have her color.
Need to think about data flattening and how it effect it

Ability to jump directly to a task using url

Ability to use the url to jump directly to a task
So users can share a url with the actual message.
Could be nice if when user "Selects a task" then the url changes with the task id
(Look at how filtering works)

Make the grid more responsive

As it stands now, the grid items have a fixed width no matter how much margins are created on the side. I would like to have the grid items expand to fill as much space as they have.

Add i18n support

Right now we support hebrew - we should localize all the strings - get RTL vs LTR from language and support english.

Assign myself

Ability to assign myself to a task (Only if no one is assigned to it)

If I already have a task then we should display an error using notification - Cannot assign to more than 1 task at this moment

Create a better invite system

Invite improvements

1.Should be simply and should be visible always at the top of the project for the project creator

Something like that (Needs better design) - Hovering over the top - having a big invite button
Screen Shot 2019-12-01 at 12 25 02
Screen Shot 2019-12-01 at 12 25 07
Clicking the invite button should open a popup showing all users and allowing you to invite more users by entering their email (Or a click to enter into the invite users page) - needs design

Popup design
Screen_Shot_2019-11-15_at_22 55 17

  1. An email should be sent upon creating a new project / becoming an admin (There is a serverless function that adds a user to admin list) - this email should include our admin guide - https://docs.doocrate.com/doocrate-admin-guide - Needs design

  2. Update our admin guide so it would includes that new invites system

Create a new Task

Create a new task:

Set the creator to the auth user who created the task.
Same page will be used in the edit task
All fields are optional but the Task name and description and label

Task should have:

  • Task name (aka title) - משימה
  • Description - תיאור
  • Label ( could have multiple labels) - תגית
  • Creator (user based on firebase oauth used id) - יוצר המשימה
  • Assigned to (user) (Creator can assign a task to himself) - ממלא המשימה
  • Special comments (From the creator - The creator is the only one that could edit those) - הערות מיוחדות מהיוצר
  • Special comments (From the community - This field is opened for all) - הערות מיוחדות מהקהילה
  • Relevant contacts - Free text - אנשים רלוונטיים
  • Assigned to user phone - The phone number of the user assigned to it
  • Status - Free Text - סטטוס
  • Due date - Date - תאריך יעד
  • Circle (Enum of - Or, Amir, Michael) - מעגל - Can only be edited by admin - מעגל
  • Critical mission (A field that can only be edited only by Admins) - האם המשימה קריטית

Tasks Pagination

Right now we are loading all tasks - When we'll scale we might need to use pagination

Edit a task

Please refer to #1 to see relevant fields

  • Only the Creator / Assignee could edit a task

Add support for anyone to open a project of doocrate [20h]

Add a button "Create event" - upon press an event would be created.
TBD - what files / models are affected.
TBD - what work needs to be done for this feature to happen

  • Create a new model - Project:
    • Id
    • Name
    • Url - my-project-name. for example - www.doocrate.com/my-project-name

  • All collections should now have a root collection - Project - Firebase Collection should now encode the actual project when loading the collection.
    CC: @matanzr

  • All handlers should now be project sensitive - so new task is now -

  • New task - https://doocrate.burnerot.com/task/new-task
    instead it should be https://doocrate.burnerot.com/MY-PROJECT/task/new-task

  • Existing tasks - /task/UID -> /MY-PROJECT/task/UID.

  • Sending emails should have the project encoded and the link to the project from which data was sent.

  • limit task per creator cloud function should be based on project

  • Permissions - firestore rules - for projects who can open them how it became an admin

  • Bonus - we have a bug that creates a lot of updates and reads which now (For production 1000 tasks. 1700 users) creates a 50 nis a month fee. Need to handle it to allow scaling so we won't have hugh server costs in case of an explosion

Time estimation - 20 hours

Tasks Filtering on the backend

Right now we are loading all the tasks and filtering on the client.
I believe a better approach would be to filter on the backend.
We can use the query field on the firebase-list to do that in some way

User should open a task only when he really saves it

Right now we are opening a "New task" whenever user presses on "New task" - Which may lead to a clutter when we scale and many users will use it.
Instead perhaps we should only "Create the actual task" when we start filling the task title.

P.S - Task title should be a must field (On the rules and on the client)

Add ablity to set user phone - [8h-14h]

Description

When a user register (signs in) - he can set his phone number - that field should be above bio field.

When a task creator, dreamer, guide, admin is looking at a task - he can see the phone number of that user for example - "0501234566 This info is visible only to you"

Things to notice

Security wise - we must make sure that this info is not visible to anyone else

Comments on new tasks

Open existing task with comments
Create a new task.
When creating a new task user can see comments of the old existing task.

Suggested labels stuff

  • remove existing labels from suggested lables.
  • don't allow duplicated labels in label field

Label and label search

Make sure that labels are saved without any extra trailing characters (such as spaces).

Also when searching make sure that no trailing characters are in the labels

Filter by labels

Ability to filter tasks by single, multiple labels

So for example - Filter all the "Art" tasks

Bonus points - if filtering happens on the db end

My space issues

New design for my space.

Known issues - would love your help @netanelben - under auth.js I've added :

// Update local auth
// TODO - ideally this would fire again an init auth so the local auth object would update
Object.assign(authUser, userSnapshot.data());
authActions.initAuth(newUserData);

I'm trying to get the reducer to have the new data but failed to do so. Would love your advise. I've also tried with adding a dispatch. I'm missing something here.
Attaching a link to the movie of the experience caused by not firing it
https://drive.google.com/file/d/1z9l9spjmoVmp7nP4ycRTi6zBnqBAoPFs/view?usp=sharing

Comments

1.Ability to edit your comment
2.Ability to delete your comment
3.Some UI with ability to Delete Comment - No need to edit a comment right now.
4.Nice to have - When user presses Enter or Bold - Could be nice to allow it - Really a nice to have

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.