COS301-SE-2023 / WordWizard

WordWizard is a reading and pronunciation improvement platform that uses artificial intelligence and natural language processing to help users improve their vocabulary, grammar, and pronunciation skills. The platform offers a variety of interactive exercises to provide a fun and engaging learning experience
9 stars 3 forks source link

Complete Constraints • Technology requirements *DEADLINE 15 MAY* #17

Closed janro13806 closed 1 year ago

janro13806 commented 1 year ago

Constraints: Constraints refer to the limitations or restrictions that affect the design and implementation of the system. Some constraints that could apply to your project include:

Technology requirements Specify the technologies and tools that need to be used in the development and implementation of the system. These requirements are often driven by factors such as compatibility, performance, scalability, security, and the specific needs of the project. In your case, some technical requirements for your project might include:

  1. Programming Language: Determine the programming language(s) that will be used to develop the application. Consider factors such as the development team's expertise, the availability of libraries and frameworks, and the language's suitability for web development. Examples of popular programming languages for web development include JavaScript, Python, and Ruby.

  2. Web Development Framework: Choose a web development framework that aligns with the project's requirements and goals. Frameworks provide a foundation for building web applications, offering pre-built components, libraries, and tools to expedite development. Some popular web development frameworks include React, Angular, and Ruby on Rails.

  3. Database Management System (DBMS): Select a DBMS to store and manage the application's data. Consider factors such as data volume, scalability, and the need for relational or NoSQL databases. Commonly used DBMSs include MySQL, PostgreSQL, MongoDB, and Firebase.

  4. Cloud Services: Determine if the application will be deployed on a cloud platform. Cloud services provide scalability, reliability, and ease of deployment. Examples of cloud platforms include Amazon Web Services (AWS), Microsoft Azure, and Google Cloud Platform (GCP).

  5. Authentication and Authorization: Decide on the technology for user authentication and authorization. This involves implementing secure login mechanisms, managing user roles and permissions, and protecting sensitive user information. Commonly used technologies for authentication and authorization include OAuth, JSON Web Tokens (JWT), and OpenID Connect.

  6. Front-end Technologies: Choose the technologies for building the user interface (UI) and handling user interactions. This includes selecting JavaScript libraries or frameworks for UI development, such as React, Vue.js, or Angular. Additionally, consider CSS frameworks (e.g., Bootstrap, Tailwind CSS) for styling the UI and ensuring a responsive design.

  7. Testing Frameworks: Identify the testing frameworks and tools to ensure the quality and reliability of the application. This includes unit testing frameworks (e.g., Jest, Mocha), integration testing tools (e.g., Selenium, Cypress), and tools for performance testing and security testing.

  8. Deployment and Continuous Integration: Determine the technology and tools for deploying the application and establish a continuous integration and continuous deployment (CI/CD) pipeline. This includes selecting deployment platforms (e.g., Docker, Kubernetes) and CI/CD tools (e.g., Jenkins, GitLab CI).

  9. Security Measures: Specify the technology requirements for implementing security measures in the application. This includes encryption algorithms, secure communication protocols (e.g., HTTPS), and tools for vulnerability scanning and security testing.

  10. Analytics and Monitoring: Identify the technology stack for gathering analytics data and monitoring the application's performance. This can involve tools like Google Analytics, application performance monitoring (APM) services, and logging frameworks.

It's important to evaluate these technology requirements based on the specific needs, scalability, performance, security, and compatibility considerations of your project. The choice of technologies should align with the skills and expertise of your development team while addressing the project's objectives and constraints.

janro13806 commented 1 year ago

Completed this in SRS