Around the New Year’s amidst all the festive mood, I spared sometime to write a user stories for development of a basic TO-DO app, I have tried to narrow down the stories to only Top 20 user stories which can be used to develop a working basic to-do app.
This post will be beneficial for beginners who want to learn Software Development Planning/Product management or who want to try their hands at development. These stories are not in professional Agile format though they will be useful to understand how to break high level requirements into actual work(User Stories) that can be executed step by step. If one wants, one can further break these stories into tasks as per convenience which should contain more technical details.
- The app should be single user only, no collaboration or sharing needed
- The app should be web/desktop only, not accessible via a mobile app
- The app should be a SaaS app, accessible only via http: url with internet access — no download or offline mode.
- System Admin: Setup servers:
- WEB, DB, Mail exchange for hosting the website
- DBA: Design database:
- Every record will be accessed by user key which will be email-id for the user, Table’s User, list, tasks, reminder, list_status, task_status.
- Frontend: Home page UI:
- Will have two options 1> “Sign In” 2> “Sign Up” present in the middle of the page.
- Frontend: “Sign In” UI:
- Consist of two textbox (“Email”, “Password”), a checkbox (“Remember me”), a button (“Login”, call login method developed as part of other user story, if return status is error show message else redirect to Dashboard and create a session). Give a link to “Create Account” UI (Don’t have an account? “Sign Up”)
- Backend: Login logic:
- Validate the credentials, if successful login send success status back else if failed count the number of attempts in 5min, if exceeds 3 failed attempts lock account and send email to the registered email address of possible hack and unlock link, send error status back.
- Frontend: “Sign Up” UI:
- Consist of three textbox (“Name”, “Email” (Key) and “Password”), button (“Create Account”).
- Backend: Create Account UI:
- Click on “Create Account” button should check for duplicate email ID if found show error message (“Email Id already registered”) else it should create account and redirect to Dashboard.
- Frontend: Dashboard UI:
- “Add list” button on top center, “Sign out” button on right top corner which destroys the session, list of Lists displayed below “Add list” button, with Active lists above and completed lists below, list are sorted by last updated date. Each List rows should be two buttons (“View”, “Delete List”: just call the methods for each button which is developed as a different user story).
- Backend: “Delete list”:
- Change the status in DB to deleted, do not delete the list actually from DB.
- Frontend: “Add List” UI:
- Pop-up a window with Textbox (“List Name”) and “Next” button to “Add Task” UI.
- Frontend: “List View” UI:
- List Name on the top inside text box (To change the list name and save on “Keyup”) with image buttons (“Duplicate List”, ”Print List”, “Mark Completed”, “Add Task”) this screen will have a list of tasks and three buttons (“Completed”, “Reminder”, “Delete”: Call the method for these actions which are developed as different user stories) on the left side of each task.
- Backend: List “Mark Completed”:
- Change status to completed in the DB and refresh the dashboard page on click of that button to move the marked list downwards.
- Backend: “Duplicate List”:
- Duplicate the entries of the list and task in the DB
- Backend: “Print List”:
- Use printing API to print the specific list with tasks and status (Active, Completed, Reminder time) against tasks.
- Frontend: “Add Task” UI:
- List Name on top, a textbox (”Task Name”) below list name and reminder button beside the textbox, and button (“Add Task”) below to add one/mulitple more textbox (“Task Name”) and reminder button beside. A save button at the bottom, also complete the backend logic for save button.
- Backend: “Completed task”:
- Update DB with task status as completed, check if all the task in the list are mark completed or deleted then mark the list as completed.
- Backend: “Reminder” on tasks:
- Update the reminder column with the flag in task table and add and add an entry in the reminder table
- Backend: “Delete” on tasks:
- Update the task status in the DB to Deleted.
- Backend: Scheduler:
- Write a scheduler to check the reminder table and send an email notification to the person, remove the task from reminder table and empty reminder flag.
- System Admin: Deployment:
- Deployment of the application on the live server.
Suggestions from Product Managers are invited, please comment.