farmeroy / opennote

0 stars 0 forks source link

Start documentation. #2

Open SiAust opened 10 months ago

SiAust commented 10 months ago

Here is the template for a Product Requirements Document I posted to Discord the other day. I suggest we complete some of the more important fields that are more appropriate to our goals so we can move forward :)

Example Template

Product Requirements Document

Product Name: My To-Do List App

Version: 1.0

Date: 2023-11-14

Objective

The objective of My To-Do List App is to provide users with a simple and easy-to-use way to create and manage their to-do lists. The app should be intuitive and easy to navigate, and it should allow users to create and edit tasks, set due dates, and prioritize their work.

Target Audience

The target audience for My To-Do List App is anyone who needs to manage their to-do lists, including students, professionals, and homemakers. The app is designed to be easy to use for people of all ages and skill levels.

Customer Needs

Customers need a to-do list app that is simple, easy to use, and reliable. They need an app that allows them to create and edit tasks quickly and easily, and to set due dates and priorities. They also need an app that is reliable and will not lose their data.

Solution

My To-Do List App will meet the needs of customers by providing a simple, easy-to-use, and reliable way to manage their to-do lists. The app will allow users to:

    Create and edit tasks quickly and easily
    Set due dates and priorities
    View their to-do lists by due date, priority, or category
    Mark tasks as complete
    Delete tasks

Requirements

The following are the functional requirements for My To-Do List App:

    Users should be able to create and edit tasks.
    Users should be able to set due dates and priorities for tasks.
    Users should be able to view their to-do lists by due date, priority, or category.
    Users should be able to mark tasks as complete.
    Users should be able to delete tasks.

Non-Functional Requirements

The following are the non-functional requirements for My To-Do List App:

    The app should be easy to use and navigate.
    The app should be reliable and will not lose data.
    The app should be compatible with a variety of mobile devices.
    The app should be secure and protect user data.

Assumptions and Constraints

The following are some assumptions and constraints for My To-Do List App:

    The app will be developed for iOS and Android devices.
    The app will be developed using the Flutter framework.
    The app will be free to download and use.

Success Metrics

The success of My To-Do List App will be measured by the following metrics:

    Number of downloads
    Number of active users
    User satisfaction rating

Timeline and Budget

The development of My To-Do List App is expected to take 3 months and cost $10,000.

Next Steps

The next steps for My To-Do List App are to:

    Create a more detailed design for the app.
    Develop a prototype of the app.
    Test the prototype with users.
    Finalize the design and development of the app.
    Launch the app on the App Store and Google Play.

Blank Template

Product Name: OpenNoter

Version: 0.1

Date: 15-11-2023

Objective

-

Target Audience

-

Customer Needs

-

Solution

-

Requirements

-

Non-Functional Requirements

-

Assumptions and Constraints

-
Success Metrics

-

Timeline and Budget

-

Next Steps

-
marek-jakub commented 10 months ago

This is a good template, as I said before. Well, prior to us starting to fill it in, we should define the rough priorities of the application - its business goals.

The note-taking application will primarily serve students (at the university level). It is going to a free and open tool, with its basic utility applied to enhance note-taking and learning process.

We should decide on the system development life cycle. It is out first project, maybe we could try a hybrid of waterfall and an incremental model. With this in mind, there are going to be several deliverables: Requirements catalogue, Data models, Test plan, User guide, Software implementation (code base). I suggest we name a maintainer for each of these (with input by all).