Skip to content

Latest commit

 

History

History
22 lines (19 loc) · 3.87 KB

sprint_1_orientation.md

File metadata and controls

22 lines (19 loc) · 3.87 KB

Introduction: Welcome to MyWebClass.org! Our mission is to revolutionize education in the modern software industry. We value people, learning, efficiency, and dependability. Our founder, Keith Williams, started this organization in 2023 with the goal of helping our community of learners succeed.

To achieve our goal, we need to evaluate and select the best tools and technologies for the development of our Next Generation Learning Management System. We need to test and evaluate a range of technologies, from web frameworks to database systems to build tools and more.

In this project, we will focus on the following areas:

Front-end Testing: We will use Playwright to automate browser testing, Artillery and/or Siege for load testing, and Lighthouse to generate reports on site performance, accessibility, and best practices. The metrics we will measure are page load time, accessibility score, and best practices score. Back-end Testing: We will automate deployment of backend servers using bash scripts or Terraform and use Oracle hardware to test AMD with 1 core and 2 cores, and Ampere with 2 cores and 4 cores. We will also test the Postgres server to see how much data it consumes as we add in 100, 10,000, and 100,000 users and associated content for those users. The metrics we will measure are response time, database query time, and server resource usage. Infrastructure and Configuration Testing: We will test node package managers to find the fastest option and build tools like Webpack, Gulp, and Grunt to determine which one is most efficient. We will choose and implement coding standards for JavaScript, CSS, and HTML and automatically test w3c validation, handicap accessibility, and JavaScript style. The metrics we will measure are build time, bundle size, and code quality score. Security, Scalability, and User Experience Testing: We will test for vulnerabilities and have a plan for responding to security incidents. We will also test for performance bottlenecks and have a plan for scaling up infrastructure. In addition, we will test usability and gather feedback from our community of users. The metrics we will measure are security score, scalability score, and user satisfaction score. Deployment and Instructions: We will create easy-to-follow instructions for local installation and create instructions for setting up various sized deployments for testing. We will use our special project to explore and evaluate Next.js as it compares to the three CSS frameworks and using static pages. We will also test our existing Flask app that has a Postgres database. We need to come up with test plans for each type of tool and identify metrics for that tool. The metrics we will measure are deployment time, setup time, and test running time. Production Readiness: We will use automated testing and continuous integration to catch issues early and use a robust logging system to capture errors and monitor performance. We will set up alerts to notify us of critical issues and implement email and external monitoring tools to display important information about server memory, CPU activity, disk space, and service activity on a dashboard. We will develop a logging strategy to track application and server performance. The metrics we will measure are error rate, downtime, and system resource usage. Capacity Planning and Cost Estimation: We will identify the metrics for each testing category and develop a plan for capacity planning and cost estimation. This plan will include identifying the maximum number of users we can handle, the maximum number of concurrent users, and the amount of storage and bandwidth required for a given number of users. The metrics we will measure are user capacity, concurrent user capacity, storage requirements, and bandwidth requirements. In conclusion, by taking all these factors into consideration, we can create a site that is performant, cost-effective, secure, scalable, and user-friendly