owned this note
owned this note
Published
Linked with GitHub
# Requirements
## Glossary
- **Admin**: A user type with privileges like banning user accounts, removing posts and comments.
- **Badge**: Feature granting users new abilities within the application (e.g., influence over posts).
- **Comment**: A textual response to a post, added by registered users.
- **Currency**: Refers to monetary units discussed, tracked, and added to portfolios.
- **Email Verification**: Confirms a user's email during registration before login and password reset.
- **Filter**: Narrows down search results by criteria like currency, portfolio, or post author.
- **Follower**: A user subscribed to another user's posts and activities.
- **Guest User**: Limited access user, able to view posts, stock details, and profiles without registering.
- **Graph**: Visual representation of stock data, added to posts by registered users.
- **Like**: Feature that lets users show appreciation for posts.
- **Log In/Log Out**: Authentication process to access or exit the application.
- **Password Reset**: Mechanism allowing users to reset their password via email verification.
- **Portfolio**: Collection of one or more stocks created by users.
- **Post**: Content created by registered users.
- **Privacy Policy**: Document outlining data collection and usage, requiring user acceptance during registration.
- **Profile**: User’s personal details and settings, viewable and modifiable by registered users.
- **Registered User**: A user who has completed registration, able to create posts and interact with content.
- **Search**: Allows users to search for others or posts using keywords and filters.
- **Stock**: Share in a company tracked and discussed within the application.
- **Tag** : Text creatable by users to classify the post
- **Terms of Use**: Legal rules and regulations users must accept to use the platform.
- **User**: Any individual interacting with the platform, categorized as a guest user, registered user, or admin.
- **Username**: Unique identifier for each registered user, used during login and other actions.
`Ekledim`
- **Secure Password**: A secure password shall have a minimum lenght of 8 charachters including at least one uppercase letters and one special symbol.
- Banned user aciklamasi
- Recent News eklenmeli
- normal network conditions
- users, guest vs dikkatli
- Profile information list
## 1. Functional Requirements
### 1.1 User Requirements
#### 1.1.1 Register & Login
* 1.1.1.1 Users shall be able to register with a unique username, e-mail address, and password.
* 1.1.1.2 User shall be registered with a secure password.
* 1.1.1.3 Users shall be able to log in using their registered credentials.
* 1.1.1.4 Users should have the option to reset their password via e-mail verification.
* 1.1.1.5 Users shall be able to log out from the system.
* 1.1.1.6 Users shall accept the Terms of Use and Privacy Policy in order to register.
#### 1.1.2 User Types
##### 1.1.2.1 Guest User
* 1.1.2.1.1 Guest user shall be able to view posts.
* 1.1.2.1.2 Guest user shall be able to view stocks.
* 1.1.2.1.3 Guest user shall be able to view user profiles.
* 1.1.2.1.4 Guest user shall be able to search for users by their usernames.
* 1.1.2.1.5 Guest user shall be able to semantic search for posts.
* 1.1.2.1.6 Guest user shall be able to view recent news about financial markets.
##### 1.1.2.2 Registered User
* 1.1.2.2.1 Registered users shall be able to create and edit posts.
* 1.1.2.2.2 Registered users shall be able to like and unlike posts.
* 1.1.2.2.3 Registered users shall be able to write comments to posts.
* 1.1.2.2.4 Registered users shall be able to follow and unfollow other users on the platform.
* 1.1.2.2.5 Registered users shall be able to view her/his followers.
* 1.1.2.2.6 Registered users should be able to add graphs to their posts.
* 1.1.2.2.7 Registered users shall be able to perform the same actions as guest users.
* 1.1.2.2.8 Registered users shall be able to create/edit one or more portfolios.
* 1.1.2.2.9 Registered users shall be able to arrange portfolios as public or private.
`TODO`
- * 1.1.2.2.7 Registered users shall be able to view the content posted by followed accounts. Bunu systeme tasicaz
##### 1.1.2.3 Admin
* 1.1.2.3.1 An admin shall be able to ban user accounts.
* 1.1.2.3.2 An admin shall be able to remove(ban) posts.
* 1.1.2.3.3 An admin shall be able to remove(hide) comments on posts.
* 1.1.2.3.4 An admin shall be able to remove tag.
#### 1.1.3 Profile Preferences
* 1.1.3.1 Users shall be able to view profile information.
* 1.1.3.2 Users shall be able to update her/his profile information.
* 1.1.3.3 Users should be able to add/remove a profile photo.
### 1.2 System Requirements
`TODO`
- Endeks vs stock icin
- Amerika ve tr borsalari
- Liste vs olcak mi
#### 1.2.1 Search
##### 1.2.1.1 Searching
* 1.2.1.1.1 The system shall allow users to search for users by usernames.
* 1.2.1.1.2 The system shall allow users to search for posts through tags, titles, author.
* 1.2.1.1.3 The system shall allow users to search for stocks.
`TODO`
Arama kriterleri eklenecek
##### 1.2.1.2 Filtering
* 1.2.1.2.1 The system shall allow users to filter the stocks as increasing and decreasing.
* 1.2.1.2.2 The system shall allow users to filter for posts according to the post's existance of portfolio and graph, author and author's badges.
#### 1.2.2 Portfolio
* 1.2.2.1 Portfolios should be created by the users by entering a name, purchase price and quantity of stock.
* 1.2.2.2 Portfolios shall include one or more stock.
* 1.2.2.3 Portfolios shall be able to be set public or private.
`TODO`
- Portfoliolar açık ya da gizli olabilsin
#### 1.2.3 News
* 1.2.3.1 The system shall include recent news about finance.
`TODO`
- bakicaz
#### 1.2.4 Posts
* 1.2.4.1 The system shall require registered users to add title to posts.
* 1.2.4.2 The system shall allow registered users to add tags to posts.
* 1.2.4.3 The system shall allow registered users to add their portfolios to posts.
* 1.2.4.4 The system shall allow registered users to add news to posts.
* 1.2.4.5 The system shall allow registered users to add ideas in the form of text to posts.
* 1.2.4.6 The system shall allow registered users to add line charts of stocks to posts.
* 1.2.4.7 The system shall store author of posts.
* 1.2.4.8 The system shall store creation date of posts.
* 1.2.4.9 The system shall store last edit date of posts.
* 1.2.4.10 The system shall store like count of posts.
* 1.2.4.11 The system shall be able to list comments related to a post.
#### 1.2.5 Badges
* 1.2.5.1 The system shall include badges which gain new abilities to users.
* 1.2.5.2 The system shall have a badge type called "High-liked".
* 1.2.5.2.1 High-liked badge shall be given if a user has a post liked by 100 users.
* 1.2.5.2.2 Users with this badge shall be suggested in the feed over others.
* 1.2.5.3 The system shall have a badge type called "Cretager".
* 1.2.5.3.1 Cretager badge shall be given if a user has 50 post.
* 1.2.5.3.2 Users with this badge shall be able to create new tags.
#### 1.2.6 Tags
* 1.2.6.1 The system shall limit tag lenght to 15 chars.
* 1.2.6.2 The system shall limit the tags to be lowercase and unique.
#### 1.2.7 Annotations
* 1.2.7.1 The system shall use annotations that comply with the W3C Web Annotation Data Model.
* 1.2.7.2 The system shall use annotations appearing in the form of a highlighted text.
* 1.2.7.3 The system shall allow annotations only in post bodies.
## **2 Non Functional Requirements**
### **2.1 Platforms & Compatibility**
* 2.1.1 The application shall be available for Web and Mobile platforms.
* 2.1.2 The web application shall be available for web browsers supporting ES6.
* 2.1.3. The web application shall support FHD (1920x1080) or higher resolutions, ensuring that all charts and graphs are rendered at a minimum resolution of 1080p for clarity and detail.
* 2.1.4 The mobile application shall be available for Android(API 33 or higher) operating systems.
* 2.1.5 The mobile application shall support portrait orientation on mobile devices.
* 2.1.6. The mobile application shall support FHD or higher resolutions, with charts and graphs rendered at a minimum resolution of 720p for clear visibility.
### **2.2 Supported Languages**
* 2.1.1 Application shall be available in English Language
### **2.3 Security**
* 2.3.1 User authorization credentials shall be encrypted to ensure the confidentiality of user data.
* 2.3.2 User login sessions shall expire after 12 hours of inactivity, requiring re-authentication to enhance security.
* 2.3.3 User shall verify their email addresses after signing up to ensure the validity of accounts before logging into the system.
* 2.3.4 The application shall ensure compliance with relevant regulatory standard GDPR for financial data security.
### **2.4 Privacy**
* 2.4.1 The application shall comply with KVKK.
* 2.4.2 The application shall provide a comprehensive privacy policy to users, clearly outlining data collection, usage, and sharing practices, and shall require user confirmation to operate.
### **2.5 Restricted Content**
* 2.5.1 The application shall not include or promote any adult content, ensuring a safe and professional environment for users engaging with financial information.
* 2.5.2 The application shall provide clear disclaimers regarding the nature of financial content, indicating the risks associated with trading and investment activities.
* 2.5.3 The application shall provide clear guidelines on acceptable use of content, including prohibiting the sharing of misleading financial advice or illegal activities.
### **2.6 Performance**
* 2.6.1 The application shall load within 3 seconds under normal network conditions.
* 2.6.2 The application shall not be unresponsive at a maximum of 10 seconds.
* 2.6.3 The application shall stay responsive for up to 5000 users concurrently.