-
Notifications
You must be signed in to change notification settings - Fork 0
Requirements_Specification
Batuhan Comert edited this page Mar 29, 2025
·
3 revisions
What the system should do.
- 1.1.2. Users should be able to sign up, log in, and log out.
- 1.1.2. Users should be able to update their profile information.
- 1.1.3. Users should be able to delete their account.
- 1.2.1. Users should be able to create nodes by entering a name (e.g., "Chicago").
- 1.2.2. When creating a node, the system should retrieve attributes from Wikidata.
- 1.2.3. If no data is found in Wikidata, the user should manually enter attributes.
- 1.2.4. If data is found in Wikidata, the user still should be able to manually enter attributes.
- 1.2.5. Users should be able to edit node attributes.
- 1.2.6. Users should be able to delete nodes.
- 1.2.7. The name of nodes should be able to be seen on the node like "Chicago" written just above a node.
- 1.3.1. Users should be able to connect two existing nodes.
- 1.3.2. While connecting nodes, users must define the relationship (e.g., "Emily was born in Chicago").
- 1.3.3. Users should be able to edit the relationship between connected nodes.
- 1.3.4. Users should be able to delete a connection between two nodes.
- 1.4.1. Users should be able to create posts in discussion pages.
- 1.4.2. Users should be able to edit their posts and comments.
- 1.4.3. Users should be able to delete their and anyone's posts.
- 1.5.1. Users should be able to search discussion posts.
- 1.6.1. There should be a single type of user that is "regular user" where each user is able to use all functionalities.
System constraints and performance expectations.
- 2.1.1. The system should handle at least 100 concurrent users smoothly.
- 2.2.1. The backend should support horizontal scaling using Docker & Kubernetes.
- 2.3.1. Rate-limiting should be enforced to prevent API abuse.
- 2.4.1. If Wikidata is unavailable, the system should gracefully handle failures and allow manual entry.
- 2.4.2. The system should support database backups and restore functionality. (?)
- 2.5.1. The system should be modular, allowing easy updates and feature additions.
- 2.5.2. Logs should be maintained for monitoring errors and debugging.
- 2.5.3. The frontend and backend should be containerized using Docker. (?)
- 2.6.1. The UI should be minimal but functional for easy node creation and connection.
- 2.6.2. Error messages should be clear and actionable.
- 2.6.3. Users should be guided when creating nodes, relationship between nodes, post on discussion page.
