-
Notifications
You must be signed in to change notification settings - Fork 2
Software Requirements Specification
Alputer edited this page Mar 26, 2023
·
16 revisions
1.1: Authentication
- These requirements are yet to be determined.
1.2: Guest Actions
- 1.2.1: Guests shall be able to view polls, comments, tags and profile page of the users.
- 1.2.2: Guests shall not be able to send prediction poll request, comment, follow users and chat with users.(i.e They can't change the state of the web page)
1.3: User Actions
- 1.3.1: Users shall be able to vote in prediction polls.
- 1.3.2: Users shall be able to send prediction poll creation requests to moderator users. They shall provide a deadline for the prediction poll voting and they shall provide the prediction poll creation request with at least one tag.
- 1.3.3: Users should be able to comment on the prediction polls.
- 1.3.4: Users should be able to express like or dislike for a prediction poll.
- 1.3.5: Users should be able to report inappropriate prediction polls or if he/she believes there is an error with the reported event outcome.
- 1.3.6: Users shall be able to vote and open polls anonymously if they want.
- 1.3.7: Users should be able to follow each other.
- 1.3.8: Users should be able to chat privately with each other.
- 1.3.9: Users shall be able to send the outcome result request of a poll they created to the moderators. This outcome result request should consist of the outcome, and the reference of the outcome so that a moderator can check and approve/disapprove it easily.
1.4: Moderator Actions
- 1.4.1: Moderators shall be able to inspect the prediction poll creation requests of the users.
- 1.4.2: Moderators shall approve/disapprove the prediction poll creation requests of the users.
- 1.4.3: Moderators shall be able to check and approve/disapprove the outcome result request of the users.
- 1.4.4: Moderators shall be able to modify the tags of the prediction poll.
- 1.4.5: Moderators shall give their reasons for disapproval to the users.
- 1.4.6: Moderators should be able to ban users who misbehave/get reported.
2.1: Rating
- 2.1.1: The system shall calculate the weight of the event and add/distract it to/from the rating of the user after the event's outcome is settled.
2.2: Categorization
- 2.2.1: Every poll and rating of the users shall be categorized using tags.
2.3: User Roles
- 2.3.1: There shall be users with different roles in the system. There shall be moderators and regular users.
2.4: Collective Estimate Of The Result Of The Predictions Made
- 2.4.1: There shall be an algorithm that calculates the contribution of the users to the collective estimate according to their rating.
2.5: Ranking System
- 2.5.1: Platform shall include a ranking system based on general and tag specific ratings.
2.6: Popular Section
- 2.6.1: Platform should have a section called "popular" which shows the most popular polls in the platform.
2.7: Poll Types
- 2.7.1: There shall be different poll options in the platform such as true-false polls, multiple choice etc.
3.1: Portability
- 3.1.1: People should be able to access webpage of the platform from commonly used browsers such as Chrome, Safari, Firefox and Internet Explorer. UI,UX and performance should not be effected much from browser to browser.
- 3.1.2: Mobile App should be supported on all Android versions later than Android 13 without any UI,UX or performance issues.
3.2: Privacy
- 3.2.1: The platform shall comply with the rules specified by KVKK and GDPR.
- 3.2.2: Users shall agree to the Privacy Policy and Terms of Service before signing up.
- 3.2.3: If the Privacy Policy changes, users must be notified about it.
3.3: Security
- 3.3.1: The platform shall use HTTPS protocol.
- 3.3.2: The platform shall have a SSL certificate.
- 3.3.3: All sensitive user data, such as passwords, shall be encrypted using a salted hashing algorithm(such as SHA-256).
- 3.3.4: The platform should be robust against Cross-Site Scripting and SQL Injection.
- 3.3.5: Users shall be notified in the event of a password change.
3.4: Performance and Reliability
- 3.4.1: Load time of any page in the platform shall be maximum 6 seconds.
- 3.4.2: Load time of any page in the platform shall be under 3 seconds on average.
- 3.4.3: The platform shall be able to handle at least 10.000 users and 500 user actions simultaneously.
- 3.4.4: The platform shall respond to any request in at most 3 seconds excluding network based delay.
- 3.4.5: The platform's average time for responding requests shall be less than 2 seconds excluding network based delay.