Skip to content

Feature Analysis

Mohammed Aldokimi edited this page Sep 28, 2022 · 2 revisions

Main features:

Users accounts:

Create an account, upload a profile picture, choose a username and password, upload email, store his login data, and other user management features.

In the user account, they can see their list of projects, they can choose to create a new project, or access already created projects and view, modify, or delete them.

Users can explore other users' projects.

Users' projects:

A user project is his data that is going to have an endpoint and can perform API calls on this data.

The CURD functionalities will be described as follows:

  1. Create: when creating a new project, the user will be able to choose the type of data that he wants to create an API for. After choosing the data the user will be able to upload a file containing this data or to create new data through the user interface, the user interface will be a form that goes with the data they have chosen. After the project is created a new endpoint for this data will be generated and ready to use. The user will also be able to specify the privacy of the project (public or private).

  2. Update: since we have an endpoint for the project any request through the API will update the project. The user can also update the project through the user interface.

  3. Read/ View: When a user access a project they can see their project data, the API endpoint (the user also can copy and share this endpoint), and they can see buttons for updating, and deleting the project.

  4. Delete: upon pressing the delete button the project will be deleted.

Project permissions: the owner of the project can set permissions for the project functionalities through the user interface or the API:

  • The user can set the project to read-only (so other users cannot update or delete the project)

  • The user can set the project to private mode (so other users cannot view, update, or delete the project)

  • The user can set the project to an interactive mode where a specific user can view, update, or delete the project.

  • The user can set the project to a public mode where everyone can do anything with the project.

API from data:

  • After a project is created, the backend engine will create a restfull API and generate an API endpoint for the project (with all HTTP access and API keys).

  • If the owner of the project can give permission for modifying or deleting the through the endpoint.

User data creation interface:

this going to be a form that is responsible to create or update a project’s data, it will handle the validation. Upon clicking on the create or the update button a new file in the backend with data will be created.

User data changes history:

since a new file will be created every time the user creates or updates a file {Which is a difficult process and requires a lot of human resources to fully accomplish → can be extended in the future if needed}, the history of the project will be stored and the user can view and review or restore any of the histories. So there will be a directory for every user on the server, inside the user's directory there will be a directory for every project, and we will store the version of our files (and the database will store the latest version, the versions are numerically ordered stored, so if the latest version is 4 the previous one is 3 and the name of the file will be 3.json for example), when we update our history we update the project version on the database and we will create a new file inside the project directory with the new version.

Additional features (maybe features)

API endpoint tester

Automatic deletion of user’s history after a certain period of time