-
Notifications
You must be signed in to change notification settings - Fork 0
Software Requirements Specification (SRS)
Welcome to the System Requirements Specification (SRS) for CreatINK, a comprehensive and user-friendly platform designed to provide a seamless experience for users. This document outlines the essential features and functionalities of the application, ensuring a clear understanding of its capabilities.
The purpose of this SRS is to define the requirements of CreatInk systematically. It serves as a guide for developers, designers, and stakeholders involved in the development process, ensuring a unified vision and successful implementation.
CreatInk aims to deliver a robust and user-centric environment for various tasks, including user authentication, photo import, drawing capabilities, and personalized user interactions.
Users can create a new account by providing necessary details.
Registered users can securely log in to access their accounts.
Upon successful login, users are directed to the main page.
A secure identity verification process ensures the authenticity of user accounts.
Users can upload and manage their photos or open a blank page within the application.
A dedicated space for users to personalize their profiles and view their information.
Users can track and manage their activities within the application.
A feature allowing users to interact with and manage customer information.
A calendar function to schedule and organize events or tasks.
Users can customize application settings to suit their preferences.
An option for users to securely log out of their accounts.
A drawing tool with a variety of pencil options for creative expression.
A toolset for precise and intricate drawing capabilities.
Users can manage and organize drawing layers effectively.
A feature to enhance the clarity and precision of drawings.
Access to pre-existing drawing models for user convenience.
Capability to extract applied drawing models.
Functional Requirements:
-
Users must provide a unique username and a valid email address during registration.
-
The system should validate the uniqueness of the chosen username and verify the email address.
-
Passwords must meet specified complexity criteria (e.g., minimum length, combination of characters).
Non-Functional Requirements:
-
Registration should be completed within 5 minutes.
-
The system should use industry-standard encryption algorithms to secure user passwords.
Functional Requirements:
-
Users must enter their registered username/email and password to log in.
-
The system should authenticate users based on the provided credentials.
Non-Functional Requirements:
-
The login process should take less than 3 seconds.
-
The system should implement secure session management to protect against unauthorized access.
Functional Requirements:
-
Users may be required to provide additional verification information (e.g., phone number) for enhanced security.
-
The system should prompt users for identity verification during specific account activities.
Non-Functional Requirements:
-
Identity verification should have a success rate of at least 95%.
-
The verification process should not exceed 2 minutes.
Functional Requirements:
-
Users can open a blank page.
-
Users can upload photos in common formats (e.g., JPEG, PNG).
-
The system should provide feedback on successful or unsuccessful photo uploads or opening a blank page.
Non-Functional Requirements:
-
The maximum upload file size should be at least 5MB.
-
Photo upload/download time should be minimized, aiming for an average of 5 seconds.
Functional Requirements:
-
Users can edit their personal information, including profile picture and bio.
-
Changes to personal information should be reflected in real-time.
Non-Functional Requirements:
-
Personal information updates should occur within 10 seconds.
-
The system should support profile pictures up to 2MB in size.
Functional Requirements:
-
Users can customize application settings such as theme and notification preferences.
-
Changes in settings should persist across sessions.
Non-Functional Requirements:
-
Settings modification should take effect instantly.
-
The system should support at least two customizable themes.
Functional Requirements:
-
Users can select different pencil types, colors, and sizes.
-
The system should provide an undo/redo functionality for drawing actions.
Non-Functional Requirements:
-
Pencil switching should be instantaneous.
-
The undo/redo history should be saved for at least the last 10 actions.
Functional Requirements:
-
Users can add, delete, and rearrange drawing layers.
-
Each layer can be independently edited and toggled.
Non-Functional Requirements:
-
Layer operations should have minimal latency (less than 1 second).
-
The system should support a minimum of 10 layers per drawing.
Functional Requirements:
-
Users can access predefined drawing models for use in their creations.
-
Models should be categorized and searchable for user convenience.
Non-Functional Requirements:
-
Model retrieval should take less than 3 seconds.
-
The system should support a minimum of 100 predefined drawing models.
These requirements serve as a foundation for further detailed specifications, helping guide the development and ensure the successful implementation of the outlined features.
-
The system should be able to handle a concurrent user load of at least 1000 users without significant degradation in response time.
-
All features should maintain responsiveness with a latency of less than 1 second.
-
The application should be designed to scale horizontally to accommodate increased user demand.
-
Scalability tests should be conducted to ensure the system can handle up to 10,000 registered users.
-
The system should have a minimum uptime of 99.5%.
-
In the event of a system failure, the application should recover within 5 minutes.
-
The user interface should adhere to accessibility standards, ensuring usability for individuals with disabilities.
-
The application should provide clear and user-friendly error messages.
-
The application should be compatible with the latest versions of popular web browsers (Chrome, Firefox, Safari, Edge).
-
Mobile responsiveness should be maintained across various devices and screen sizes.
Actors:
- User
Preconditions:
- The user is not registered in the system.
Postconditions:
- The user has a registered account in the system.
Main Flow:
-
The user accesses the registration page of the application.
-
The system presents a registration form with fields for a unique username, a valid email address, and a password.
-
The user fills in the required information.
-
The system validates the uniqueness of the chosen username and checks the email format.
-
If validation is successful, the system prompts the user to complete the registration.
-
The user submits the registration form.
-
The system securely stores the user's credentials and creates a new account.
-
A confirmation message is displayed, indicating successful registration.
-
The user is now able to log in using the registered credentials.
Alternate Flow:
- If the chosen username is not unique or the email format is incorrect, the system provides appropriate error messages, prompting the user to correct the information.
Actors:
- Registered User
Preconditions:
- The user is registered in the system.
Postconditions:
- The user is successfully logged into the system.
Main Flow:
-
The user accesses the login page of the application.
-
The system presents a login form with fields for the username/email and password.
-
The user enters their registered username/email and password.
-
The system authenticates the user's credentials.
-
If authentication is successful, the system logs in the user and redirects them to the main page.
-
The user gains access to their personalized dashboard.
Alternate Flow:
- If the entered username/email or password is incorrect, the system provides an error message, prompting the user to enter valid credentials.
Actors:
- Registered User
Preconditions:
- The user is successfully logged into the system.
Postconditions:
- The user is on the main page of the application.
Main Flow:
-
After successful login, the system redirects the user to the main page/dashboard.
-
The main page displays relevant information, user activities, and navigation options.
Alternate Flow:
- If there are specific notifications or messages for the user, the system highlights them on the main page.
Actors:
- Unregistered User
Preconditions:
- The user is not currently authenticated.
Postconditions:
- The user is successfully authenticated and gains access to the system.
Main Flow:
- User Registration: The unregistered user accesses the registration page of the application. The system presents a registration form with fields for a unique username, a valid email address, and a password. The user fills in the required information. The system validates the uniqueness of the chosen username and checks the email format. If validation is successful, the system prompts the user to complete the registration. The user submits the registration form. The system securely stores the user's credentials, including the encrypted password, and creates a new account. A confirmation message is displayed, indicating successful registration. The user is now able to log in using the registered credentials. User Login: The registered user accesses the login page of the application. The system presents a login form with fields for the username/email and password. The user enters their registered username/email and password. The system validates the user's credentials against the stored information in the User table. If the credentials are valid: The system generates a new authentication token. The token is associated with the user in the Authentication Token table. The token and its expiration date are sent to the user. The user receives the token and stores it securely (e.g., in a secure cookie or local storage). Subsequent authenticated requests from the user include the token in the request header.
Alternate Flow:
- If the entered username/email or password is incorrect during login, the system provides an error message, prompting the user to enter valid credentials. Exceptional Flow: If there are issues with the authentication process (e.g., server errors, inability to generate a token), the system provides an appropriate error message and guides the user on how to proceed. Security Considerations: Passwords are securely hashed and salted before comparison. The login page, as well as subsequent authenticated requests, should use secure channels (e.g., HTTPS) to protect against eavesdropping. Tokens are generated securely and have a limited expiration time for enhanced security. The system should implement measures to protect against brute-force attacks (e.g., account lockout after multiple failed login attempts). This use case description outlines the entire user authentication process, covering both user registration and login, with a focus on ensuring security and successful user access to the system.
Actors:
- Registered User
Preconditions:
- The user is successfully logged into the system.
Postconditions:
- The user opens a blank page successfully in the system.
Main Flow:
- Accessing Import Photo Feature:
The user navigates to the "Import Photo" section within the application.
- Selecting Photo to Import:
The system presents an interface for selecting a photo file from the user's device.
The user clicks on the "Upload" or "Select File" button.
- Uploading Photo:
The system validates that the selected file is an acceptable photo format (e.g., JPEG, PNG).
If the file format is valid, the system proceeds with the upload process.
The user may have the option to add additional details or metadata for the imported photo.
- Processing and Storing Photo:
The system processes the photo, ensuring that it meets any specified size or resolution requirements.
The photo is stored in a secure and organized manner within the system's storage infrastructure.
The system associates the photo with the user's account, linking it to their profile.
- Confirmation and Display:
The system provides a confirmation message indicating the successful import of the photo.
The imported photo is displayed within the user's personal space or profile, depending on the application's design.
Alternate Flow:
If the selected file is not a valid photo format, the system provides an error message, prompting the user to select a valid photo file.
Exceptional Flow:
If there are issues with the photo upload process (e.g., server errors, insufficient storage), the system provides an appropriate error message and guides the user on how to proceed.
Security Considerations: The system should perform thorough validation to prevent uploading of malicious files.
Uploaded photos should comply with any privacy or content guidelines defined by the application.
Access to the user's uploaded photos should be restricted to authorized users and follow privacy settings.
This use case description outlines the steps involved in the "Import Photo" functionality, emphasizing the user's interaction with the system to upload, process, and store photos securely.
Actors:
- Registered User
Preconditions:
- The user is registered in the system.
Postconditions:
- Registered users can: Personalize the information in their profile and see their own information.
Main Flow:
-
The user navigates to the "Personal Page" section within the personal menu.
-
The system will show the page showing the user's information.
-
The user can personalize the information in own profile.
Alternate Flow:
- The user cannot retrieve a pre-existing username during customization.
Actors:
- Registered User
Preconditions:
-
The user is registered in the system.
-
The user must have previously performed activity within the application.
Postconditions:
- Registered users can see and manage their own activities.
Main Flow:
-
The user navigates to the "My Activities" section within the personal menu.
-
The system will show the page showing the user's activities.
-
The user can delete or edit own activities.
Alternate Flow:
- If the user has not done any activity before, the user cannot see the page.
Actors:
- Registered User
Preconditions:
- The user is registered in the system.
Postconditions:
- View and manage customer information.
Main Flow:
-
The user navigates to the "Customers" section within the personal menu.
-
The system presents a list of customers associated with the user's account.
-
The user can perform various actions, such as:
-
View customer details (name, contact information, etc.).
-
Add a new customer to the list.
-
Edit existing customer information.
-
Delete a customer from the list.
Alternate Flow:
- If the entered username/email or password is incorrect, the system provides an error message, prompting the user to enter valid credentials.
Actors:
- Registered User
Preconditions:
- The user is registered in the system.
Postconditions:
- View and manage appointment information about customers.
Main Flow:
-
The user navigates to the "Calendar" section within the personal menu.
-
The system displays a visual representation of the user's schedule with existing events.
-
The user can:
-
View details of specific events.
-
Add new events with details such as title, date, time, and location.
-
Edit or delete existing events.
Alternate Flow:
-
If the user has no scheduled events, the system may display a message indicating that the calendar is empty.
-
If there are issues saving or retrieving calendar events (e.g., server errors), the system should provide appropriate error messages and guide the user on how to proceed.
Actors:
- Registered User
Preconditions:
- The user is successfully logged into the system.
Postconditions:
- The user's application settings are updated according to the changes made.
Main Flow:
-
The user navigates to the "Settings" section within the personal menu.
-
The system presents a form or interface with options to customize settings.
-
The user can modify settings such as theme, notification preferences, language, etc.
-
The system applies the changes immediately or prompts the user to confirm the modifications.
Alternate Flow:
- If there are no changes made by the user, the system does not alter the existing settings.
Exceptional Flow:
- If there are issues saving the updated settings (e.g., database errors), the system should provide appropriate error messages and guide the user on how to proceed.
Actors:
- Registered User
Preconditions:
- The user is logged into the system.
Postconditions:
- The user is successfully logged out, and the session is terminated.
Main Flow:
-
The user navigates to the "Log Out" option within the personal menu.
-
The system prompts the user to confirm the log-out action.
-
The user confirms the log-out action.
-
The system terminates the user's session, clearing any stored session data.
Alternate Flow:
- If the user chooses not to log out after the confirmation prompt, the system returns to the main page, maintaining the current session.
Actors:
- Registered User
Preconditions:
- The user is registered in the system.
Postconditions:
- The user can draw with the pencil kit.
Main Flow:
-
The user navigates to the "Pencil Kit" section within the drawing kit menu.
-
The system will open a page where users can design tattoos with the pen kit.
-
The user will be able to choose the pen type, color and size wants from the pen kit.
-
The user will be able to draw her design with the pencil kit he/she chooses.
-
The user will be able to save the design user has drawn.
Actors:
- Registered User
Preconditions:
- The user is registered in the system.
Postconditions:
- The user can draw with the needle kit.
Main Flow:
-
The user navigates to the "Needle Kit" section within the drawing kit menu.
-
The system will open a page where users can design tattoos with the needle kit.
-
The user will be able to choose the needle type, color and size wants from the pen kit.
-
The user will be able to draw her design with the needle kit he/she chooses.
-
The user will be able to save the design user has drawn.
Actors:
- Registered User
Preconditions:
- The user is logged into the system.
Postconditions:
- User successfully logged into the side menu
Main Flow:
-
The user registers or logs in to the system
-
The user is directed to the homepage, where they choose 'Blank Page' option
-
The user navigates to the drawing page
-
The user accesses the side menu from the drawing page
Alternate Flow:
- If the user encounters an issue with the side menu's functionality (e.g., menu options not loading, unexpected behavior), the system provides an error message and guides the user on how to proceed.
Actors:
- Registered User
Preconditions:
- The user is logged into the system.
Postconditions:
- The user successfully entered the layers menu
Main Flow:
-
The user registers or logs in to the system
-
The user is directed to the homepage, where they choose 'Blank Page' option
-
The user navigates to the drawing page
-
The user accesses the side menu from the drawing page
-
The user enters the layers menu
Alternate Flow:
- If the user chooses an option other than 'Layers,' they can return to the side menu
Actors:
- Registered User
Preconditions:
- The user is logged into the system.
Postconditions:
- The user successfully entered the sharpening menu
Main Flow:
-
The user registers or logs in to the system
-
The user is directed to the homepage, where they choose 'Blank Page' option
-
The user navigates to the drawing page
-
The user accesses the side menu from the drawing page
-
The user enters the sharpening menu
Alternate Flow:
If the user chooses an option other than 'Sharpening,' they can return to the side menu.
Actors:
- Registered User
Preconditions:
- The user is logged into the system.
Postconditions:
- The user successfully entered the Get Model menu
Main Flow:
-
The user registers or logs in to the system
-
The user is directed to the homepage, where they choose 'Blank Page' option
-
The user navigates to the drawing page
-
The user accesses the side menu from the drawing page
-
The user enters the Get Model menu
Alternate Flow:
- If the user chooses an option other than 'Get Model,' they can return to the side menu.
Actors:
- Registered User
Preconditions:
- The user is logged into the system.
Postconditions:
- The user successfully entered the Extract Model menu.
Main Flow:
-
The user registers or logs in to the system
-
The user is directed to the homepage, where they choose 'Blank Page' option
-
The user navigates to the drawing page
-
The user accesses the side menu from the drawing page
-
The user enters the Extract Model menu
Alternate Flow:
- If the user chooses an option other than 'Extract Model,' they can return to the side menu.
6.5 DFD Diagram (Import Photo, Drawing Kit, Side-Menu, Pencil Kit, Needle Kit, Layers, Sharpening, Get Model-Extract Model)
Represents an individual registered in the system.
- UserID: Unique identifier for each user.
- Username: User's unique identifier for login.
- Email: User's email address.
- Password: Encrypted user password.
- Role: Role assigned to the user (e.g., standard user, administrator).
Represents a customer associated with a user account.
- CustomerID: Unique identifier for each customer.
- UserID: Foreign key referencing the User table.
- Name: Customer's name.
- Contact Info: Customer's contact information (e.g., phone number, email). Address: Customer's address details.
Represents an event scheduled on the user's calendar.
- UserID: Foreign key referencing the User table.
- Title: Title of the event.
- Date: Date of the event. Time: Time of the event.
- Location: Location details of the event.
Represents user-specific settings and preferences.
- UserID: Foreign key referencing the User table.
- Theme: User's selected application theme.
- Notifications: User's notification preferences.
- Language: User's preferred language.
These are simplified data dictionary entries. In a real-world scenario, you might need to include additional details, constraints, and relationships between tables. It's also important to document any data validation rules, formats, and units where applicable. The data dictionary serves as a reference for developers, ensuring a common understanding of the data used within the system.
Chapter | Representative |
---|---|
1. Introduction | Aylin Akyol |
2. Overview of Functional Requirements | Aylin Akyol |
2.1 Detailed Description of Functional Requirements | Aylin Akyol, Ali Çavuş, Rıfat Taşlı, Yağan Soykan, Çağdaş Terzi |
3. Non-Functional requirements | Aylin Akyol, Ali Çavuş, Rıfat Taşlı, Yağan Soykan, Çağdaş Terzi |
4.1.1 Drawing use case diagrams. | Aylin Akyol, Ali Çavuş, Rıfat Taşlı, Yağan Soykan, Çağdaş Terzi |
4.1.2 Description of Use Cases | Aylin Akyol, Ali Çavuş, Rıfat Taşlı, Yağan Soykan, Çağdaş Terzi |
5. Functional Modeling (DFD) | Aylin Akyol, Ali Çavuş, Rıfat Taşlı, Yağan Soykan, Çağdaş Terzi |
6. Drawing DFD diagrams | Aylin Akyol, Ali Çavuş, Rıfat Taşlı, Yağan Soykan, Çağdaş Terzi |
7. Data Dictionary | Aylin Akyol, Ali Çavuş, Rıfat Taşlı, Yağan Soykan, Çağdaş Terzi |
8. References and Resources | Aylin Akyol, Ali Çavuş, Rıfat Taşlı, Yağan Soykan, Çağdaş Terzi |