# Product Requirements Document
## Product Name: Nobox
## Product Version: V1
## Introduction
- Nobox is a software that allows developers create auto-generated APIs.
- Target audience and user personas
- Frontend Developers who can't or does now want create APIs
- Backend Developers who need quickly generated APIs
- Other Forms of Tech Experts who need quick autogenerated APIs. e.g Data Scientists, Machine learning Experts, IOT Developers, etc.
## Background
- Market research and competitive analysis
- Close Competitors include:
- AppWrite - APIs and Dashboard Management
- Strapi - APIs and Dashboard Management
- SurrealDb - Schema-less API Query through SQL-like commands
While this close competitors provide APIs , none of them offer the full set of features that we provide e.g. On-demand auto-created schemas and record collections
- Problem statement and customer pain points
- Reduce Time and cost of Development by providing backend as a service through APIs auto-generation
- Reduce time spent outside of Coding IDE by allowing creation of schemas within the code, and enabling auto-creation feature for projects and record collections
## Objectives and Key Results (OKRs)
- Define specific and measurable objectives for the product
- Easy, pleasing and new UI for users
- UI/UX must fit directly into the working style and lifestyle of developers and other forms of users that use the application. For instance, quick installation and easy sighting of regularly checked items is important for developers
- Speed of Usage is highly important.
- Fast , Easy and Quick.
- Identify Key Results to track progress towards the objectives
- This should be easily tracked by usage , testing and periodic review of work
## User Stories
- UX User Story
- As a programmer, I want to know what the product does on the first glance on the home page
- As a programmer, I want to be able to start installation from first glance details on the homepage
- As a business owner, I want to see how this product helps my business by first glance on the homepage
- As a programmer, I want to be able to have a well written, easy to read, fast loading, mobile responsive and SEO enabled documentation
- As a programmer, the UI of the website should not be crowded, clean and super easy to navigate
- Feature User Story
- As a programmer, I should be able to:
- Register With Github and google account
- Login with GIthub and Google Account
- Create/Edit a Project
- Copy Forever / Eternal Token
- View Record Units being Created
- Have access to Dashboard Docs or tooltips explaining how the features on the dashboard work
## Functional Requirements
- Detailed description of the features and functionality of the product
- Forever Token
- This is an automatically generated code that the user needs to copy and to his code to work. This is only compulsory requirement to use nobox. Every other feature is mostly to monitor records being created
- Projects
- This would be created with fields like:
- Name
- Slug
- auto-generated e.g. project-one and
- could also be edited
- always in lower case
- Description (optional)
- This could also be auto-generated from the Client Code
- Record Space
- These are records being created based on schemas added from the client code. for example List of users
- This will be viewed only for now
- It has fields like Name, Slug, and Description but will not be creatable from the dashboard for now, only via the code
- Dashbaord Docs and Tooltips
- This is just a succint explanation of how the Dashboard works but then it should be rarely needed, only for understanding how the dashboard relates to their code
- User flows and diagrams to visualize interactions
Registers => Reads Documentation => Copy Token => Back To IDE (e.g. vscode) to continue coding
IDE Coding => To check Documentation
IDE Coding => To check Records
IDE Coding => To Recopy Token
### Possible User Flow
The User is expected to register, then read documentation, after which he copies the token and then go back to his coding IDE to pratice what he has learnt from the documentation.
```mermaid
sequenceDiagram
participant Registration
participant Documentation
participant Dashboard
participant Coding IDE (e.g. VS Code)
Registration->>Documentation: Scenario 1:<br> Registers and Reads Docs
Documentation->>Registration: Scenario 2:<br> Reads Docs and Registers
Documentation->>Dashboard: Scenario 3 (After Registration): <br> Reads Docs and Copies Token
Dashboard->>Coding IDE (e.g. VS Code): Scenario 4 (from IDE):<br> Copies Token and <br> then goes back to IDE
Coding IDE (e.g. VS Code)->>Dashboard: Scenario 4 (from IDE):<br> Comes from IDE to check Records
```
## Non-Functional Requirements
- ### Performance / Usability:
- The Website is meant to be snappy fast as speed is very important to developers while working
- UI/UX should make it easy to use , access and understand features
- ### Security:
- HTTPS for now
- GMAIL passwording for now
## Acceptance Criteria
- All Featured User Story should be possible
- All Stated Requirements and User Flow should be possible
## Timeline and Milestones
- Design: 2 Weeks ( Feb 12)
- Copywrite ( Feb. 16)
- Frontend Development: CSS Creation ( Feb. 12 to Feb 18)
## Appendices
### Nobox FrontPage
- https://www.figma.com/proto/KindlbiRShOA70hHopGh5V/No-Box?node-id=1%3A2