Project Requirements

This page includes a general overview of the project. You can find important terms, user story specifications, and information on the tech stack.


Executive Summary

There is a problem of parents constantly messaging daycare providers in hopes of knowing the status of their child. The Daycare management app is a product trying to help bridge better communication between parents and daycare workers in hopes to inform parents. The essential functionality of the app is for the daycare worker to update the parent in regards to the activity of the child. Parents and daycare providers are the main users of this app. This product will be used to keep track of a child’s activity while in the care of a daycare provider.

Project Glossary
  • Daycare Manager A manager is a person who manages the daycare center and is the user who adds new parents, students, and workers to the system
  • Daycare Centre The group of managers, workers, parents, and children that are part of the same system and database
  • Daycare Worker A worker is a person who takes care of their assigned group of children, creates a dayplan, records the activities, and communicates with the parents
  • Parent A parent is a person who has a child at the center and will be able to view their child’s day plan and activities as well as communicate with the worker assigned to their child
  • Child A child is a person who is part of a workers group and supervised by them, a child will not be a user of the system, but will have a profile in the database that is linked to their parent and their daycare worker
  • Activity An activity is created by a worker for check-in, sleep, eating, or other and may include an image or video, a description, and tags to one or more children
  • Feed A feed includes activity items for children that the user has access to - parent will see just their child, worker will see all children in their group, manager will see all children in the center

  • User Stories

    Management Users
    US 1.01 - Add new children (2) As a manager, I want to be able to add new children to the system, so that their activities can be sent to the parent.

    Acceptance Tests
    • Admin can add a new child to the system
    • Admin can choose which parent and worker to assign the child to
    • Admin can not add a new child with parent void
    • Admin can not add a new child with daycare worker void
    • Admin can not add an existing child to the system
    US 1.02 - Add new parents (2) As a manager, I want to be able to add new parents to the system, so that they can use the app to view their child’s activity.

    Acceptance Tests
    • Admin can add a new parent to the system
    • Admin can not add parent if one of the required fields is void
    • Admin can not add an existing parent to the system
    US 1.03 - Add new daycare workers (2) As a manager, I want to be able to add new daycare workers to the system, so that they can use the app to upload children's activities.

    Acceptance Tests
    • Admin can add new daycare workers to the system
    • Admin cannot add daycare workers if one of the required fields is void
    • Admin can not add an existing worker to the system
    US 1.04 - Generate credentials (1) As a manager, I want to be able to create username and password for the parents and daycare worker, so that they can log into the app.

    Acceptance Tests
    • Admin can have a username and password generated for the parent/daycare worker
    • Each user has a unique username
    • Admin can't create a login if the parent or worker does not exist
    US 1.05 - Delete existing children (1) As a manager, I want to be able to delete children from the system, so that our database is up to date.

    Acceptance Tests
    • Admin can delete a child from the table, without deleting the parent or worker
    • The child no longer appears in the parents list of children
    US 1.06 - Delete existing parents (1) As a manager, I want to be able to delete existing parents from the system, so that our database is up to date.

    Acceptance Tests
    • Admin can delete a parent from the table
    • All children associated with the parent will be deleted synchronously
    US 1.07 - Delete existing workers (1) As a manager, I want to be able to delete existing workers from the system, so that our database is up to date.

    Acceptance Tests
    • Admin can delete a worker from the table
    • Admin can not delete a worker until their children are reassigned to a new worker
    US 1.08 - View feeds for all children (8) As a manager, I want to be able to view the feed activity for all the children, so that I can supervise the activities the children are taking part in.

    Acceptance Tests
    • Admin can view feed activity for all the children, organized by their worker
    • Admin sees the same activities that would appear on the worker's feed
    US 1.09 - Assign children to a daycare worker (2) As a manager, I want to be able to assign a child to a worker’s group, so that I can manage my daycare workers and children in the system.

    Acceptance Tests
    • Admin can assign child to a worker’s group
    • Admin cannot assign parent to a worker’s group
    • Admin cannot assign a child to a worker who already has maximum children assigned
    US 1.10 - View plans and prices (1) As a manager, I want to be able to view subscription plans for the daycare app, so that I can manage the number of children and groups I have in the system

    Acceptance Tests
    • Admin can view a range of subscription plans which show the price and amount of children and groups allowed
    US 1.11 - Assign multiple children to a parent (2) As a manager, I want to be able to assign multiple children to the same parent, so that they can view multiple children on the app.

    Acceptance Tests
    • Admin can assign multiple children to a parent
    • Parent can see the activities of all children
    US 1.12 - Payment for services (8) As a manager, I want to be able to make payments for my subscriptions, so that I can continue using the app’s functionalities.

    Acceptance Tests
    • Payment with a valid card should go through
    • Payment with invalid card number should not go through
    • Payment with an expired card should not go through
    • Payment with various amounts should go through
    US 1.13 - Edit existing users (3) As a manager, I want to be able to edit information on existing daycare workers, children and parents, so that the information is always up-to-date.

    Acceptance Tests
    • Admin can edit a child's information
    • Admin can edit a daycare worker's information
    • Admin can edit a parent's information
    • Admin can see the update in real time
    Daycare Worker Users
    US 2.01 - Daycare worker login (2) As a daycare worker, I want to log in with my username and password, so that the system can authenticate me and I can use the app.

    Acceptance Tests
    • Daycare worker can login to the daycare management system using the correct credential
    • Workers cannot login with false credentials
    • When authenticated, worker will be brought to their home page
    US 2.02 - Take attendance (3) As a daycare worker, I want to be able to take attendance for my group, so that I can keep a record of which children are present and absent.

    Acceptance Tests
    • Workers can mark each child as absent or present as they show up
    • Worker can save, leave the attendance page and come back without losing their previous data
    • When worker marks a child as present, that parent can see a check-in time on their feed
    • When worker finishes taking attendance for their group, they can see a group check-in activity on their feed
    • When worker finishes taking attendance, a manager/admin can see the group check-in on that worker's feed
    US 2.03 - Add new activity (3) As a worker, I want to be able to create activities and tag children in them, so that the respective parents can view the activity in their feed.

    Acceptance Tests
    • Workers can create a new activity
    • Worker can choose which children to tag in the activity
    • Workers can see the newly added activity in their feed as one item
    • Parents can see the newly added activity in their feed
    • Admin can see the newly added activity in the worker's feed
    US 2.04 - Upload photos and videos (5) As a worker, I want to be able to take or upload photos and videos, so that the respective parents can view it in their feed.

    Acceptance Tests
    • When creating an activity, worker can choose to upload a photo or video
    • Workers can access their mobile camera to take a photo or video
    • Workers can upload a photo or video from their phone
    • The photo or video appears as part of the activity item in the feed
    US 2.05 - Add description to activity (1) As a worker, I want to be able to write a short description for an activity, so that the parents can view it with the activity in their feed.

    Acceptance Tests
    • When creating an activity, worker can choose to write a description
    • The description appears as part of the activity item in the feed
    US 2.06 - Send messages to parents (3) As a worker, I want to be able to send messages to the parents of children in my group, so that I can communicate with them throughout the day.

    Acceptance Tests
    • Worker can send a message to a parent
    • Parent can see the message that was sent to them in real time
    • Worker can see messages from the parent
    US 2.07 - Add activities to day plan (2) As a worker, I want to be able to add activities in my day plan, so that I can plan the time with my children more efficiently.

    Acceptance Tests
    • Worker can add an activity in day plan
    • Worker can see the new activity appear in the day plan in real time
    • Worker can switch to day plans of previous days or future days
    US 2.08 - Tag children with sharing permission (3) As a worker, I want to be able to tag children in group activities only if their parents have given persmission, so that I can maintain the child's privacy if the parent wishes.

    Acceptance Tests
    • Worker can tag multiple children if their parents have given sharing permission
    • Worker can not tag a child without sharing permission if they tag multiple children
    • Worker can tag a child without group persmissions if they are the only child tagged
    Parent Users
    US 3.01 - Parent Login (2) As a parent, I want to log in with my username and password, so that the system can authenticate me and I can use the app.

    Acceptance Tests
    • Parent can login with correct credentials
    • Parent cannot login if credentials are false
    • Parent is redirected to home page when authenticated
    US 3.02 - View child’s feed (5) As a parent, I want to be able to view my child’s activities as a feed, so that I see what my child is doing during the day.

    Acceptance Tests
    • Parents can view their child’s activities in a feed
    • Parents cannot view the feed for children that aren't theirs
    US 3.03 - Receive Notifications (3) As a parent, I want to receive notifications of new activities regarding my child, so that I know what my child is doing right away.

    Acceptance Tests
    • As an activity is created that has the child tagged, the parent receives a notification
    • Parent won’t receive notifications for children that are not theirs, or that their child is not tagged in
    US 3.04 - Send messages to worker (3) As a parent, I want to be able to chat with the daycare worker assigned to my child, so that I can ask them questions throughout the day.

    Acceptance Tests
    • Parent can send messages with the daycare worker assigned to their child
    • Parent cannot send messages to other daycare workers that are not assigned to their child
    US 3.05 - Switch children’s feed (5) As a parent, I want to be able to switch between my children’s feeds, so that I can view activities for more than one child at the same daycare.

    Acceptance Tests
    • Parents can view a feed for more than one child on the same account by easily switching between their profiles
    US 3.06 - View child's dayplan (3) As a parent, I want to be able to view my child's day plan created by their worker, so that I can view the planned activities for that day.

    Acceptance Tests
    • Parents can view the day plan for their child
    • Parents can view future day plans for their child
    MoSCoW Must Have
    • US 1.01 - Add new children
    • US 1.02 - Add new parents
    • US 1.03 - Add new daycare workers
    • US 1.04 - Generate credentials
    • US 1.08 - View feeds for all children
    • US 1.09 - Assign children to a daycare worker
    • US 2.03 - Add new activity
    • US 2.04 - Upload photo and videos
    • US 2.05 - Add description to activity
    • US 3.01 - Parent Login
    • US 3.02 - View child’s feed
    Should Have
    • US 2.01 - Daycare worker Login
    • US 2.02 - Take attendance
    • US 2.06 - Send messages to parents
    • US 3.03 - Receive Notifications
    • US 3.04 - Send messages to worker
    • US 2.08 - Tag children with sharing permission
    Could Have
    • US 1.05 - Delete existing children
    • US 1.06 - Delete existing parents
    • US 1.07 - Delete existing workers
    • US 1.10 - View plans and prices
    • US 1.11 - Assign multiple children to a parent
    • US 1.13 - Edit existing users
    • US 2.07 - Add activities to day plan
    • US 3.06 - View child’s dayplan
    Would Like but Won't Get
    • US 1.12 - Payment for services
    • US 3.05 - Switch children’s feed

    Resources

    Similar Projects
    • Hi Mama - Daycare management app on the market
    • Whatsapp - Messaging functionality
    • Instagram - Feed functionality
    • SnapChat - Photo functionality (for taking photos)
    Relevant Open-Source Projects
    Technical Resources

    Database: Postgresql

  • Postgresql Documentation

    Back-end: Django + Django REST Framework

  • Django documentation
  • The Django admin site
  • Django REST Framwork

    Front-end: Flutter

  • Flutter Documentation

    Deployment: Docker + Google Cloud + Cybera

  • Docker Deployment
  • Google Cloud
  • Cybera
  • Deployment on Ubuntu