This case study is dedicated to the development of an application for drawing up a training schedule. The application will be intended for use by both teachers and students. In addition to the schedule of lessons at school, there will also be additional useful functions in the application from. Case study will be developed on the basis of DevOps. This work also examines the ways of testing the application and the development tasks that are priorities. Moreover, the case study describes in detail the strategy and development plan.
Executive Summary
The project timetable encompasses all activities related to creating a schedule that must be subject to various constraints. Timetable refers to activities related to creating a schedule that must be subject to various constraints. A well-planned, well-organized, and conflict-free timetable is essential in running an educational center or, more broadly, an academic environment. The academic institution manually created the timetable back when technology was not widely used. The timetable development process begins when each department head provides the following information for timetable scheduling. This project’s main requirement is to provide information about the academic year, course, subject, class, and semester. The main objective was to create a system for college lecturers to manage their timetables based on student attendance. The quality of the time that staff, students, and administrators devoted to academic activities are determined by the timetable. The timetable will be for both students and staff.
The Project Scope: The Problem Identification
The management of institutional activities such as class sessions, lectures, and other important events requires proper preparation and management. Most institutions approach this challenge manually, resulting in complications, errors, or discrepancies that could otherwise be avoided if efficient tools were employed. In institutions of higher learning, scheduling exams could be challenging, making most students find themselves sitting for parallel exams. Such situations are not only frustrating to the students but also embarrassing and inconvenient to the management and supervisory personnel. Many available methods create or generate a set of schedules, but they frequently fail to provide a complete and clash-free timetable. In this scenario, the time-consuming activities of data entry and editing of frequently partial answers are the barriers. Most educational institutions have resorted to manual timetable development, which takes a long time to complete and optimize, according to data. There are a few clashes even at the most optimized stage of the manually prepared timetable, and it is the lecturer who is taking the clashing course who works out the mechanics of the course to prevent the collision. Timetable scheduling is always described as a sophisticated optimization problem that has been linked to the NP-complete clique of the minimization problem. It is critical to recognize that such scheduling is a global issue with direct application in many types of timetabling, including tests, public transportation, and rosters, to name a few.
The Objectives
The main objectives of the timetable management project integration are listed below.
- To develop a timetable management system that all students can utilize for proper planning.
- Increase the effectiveness with which the staff, students, and schedule are managed.
- Manage student activities and information monitoring.
- Timetable data is added, modified, and removed as necessary to produce better results.
- Enables the integration of all academic year and course records.
- To develop a timetable management system that all students can utilize for proper planning
- Test the timetable to assess its functionality with reference to the functional and non-functional requirements.
The Requirement Specification
Requirements define the set of deliverables or project characteristics that must be achieved to ensure the success of a project. The requirements suggested by the target users and stakeholders are based on their needs and preferences. There are two categories of requirements: functional and nonfunctional. The functional requirements of a project define the set of activities that the project must do. For instance, in the case of a timetable management system, it should be able to balance staff workload depending on the departmental staffing, the number of courses offered and the students enrolled. The functional requirements must be translated into tangible results such as printed reports, email alerts, and other analytical results. On the contrary, nonfunctional requirements describe how the stem should behave or achieve the functional requirements. They include loading speed, security features, interface characteristics, graphics, and other features that do not influence what should be done. For instance, the loading time of a webpage is not a user requirement, but fast-loading pages result in a better user experience.
Functional Requirements
- Students, lecturers, and guests shall be able to view current and previous timetables
- Users shall be able to search specific timetables based on different classes.
- The search feature shall encompass filters to customize results.
- The system shall notify administrators upon successful account creation for new users.
- Lectures shall be assigned to courses within their receptive departments or domains.
- Users shall be allowed to provide feedback on the system functionality, report errors, and suggest improvements.
Non-Functional Requirements
- Successful user account creation should be verified by the administrator.
- The database of the timetable management system shall be done automatically by the system.
- The timetable database should be automated by the system
- The maximum number of logged-in users should not exceed 500.
- User passwords must contain lowercase, uppercase, numbers, and special characters.
- The system should load in less than 2 seconds.
Priorities
When developing software for a schedule management application, functional requirements play a primary role. This is due to the fact that they are responsible for the input and output of data and the behavior of the system when working with the application. Functional requirements are of primary importance, because if the system does not meet the functional requirements, it means that the schedule is not reproduced properly by the user.
The Project Strategy
The first step in the DevOps plan and strategy project will be to separate the schedule environments for development, testing, pre-production and production. At the same time, the speed of application deployment should be very high, that is, almost all processes are automated and methods are standardized. The second stage will be the implementation of the micro service architecture strategy with external data storage. Since the application service is a separate schedule functionality that interacts via the API, and all the necessary artifacts must be stored on separate resources outside the services.
A project strategy sets the stepping stone for laying the guidelines on how the project should be achieved. The guidelines set rules on how different stages of the project should be approached: from inception, requirement elicitation, validation, design, implementation, and delivery. The testing phases and associated activities are also considered in this case to ensure all details are observed and an acceptable product is shipped to the customer as per their requirements. This section presents a detailed approach to how the project will be achieved from inception to delivery. The iterative waterfall model is the ideal methodology for the project as it gives room for the correction of mistakes, debugging of errors and conditional additions of features are required. The iterative waterfall model borrows from the traditional waterfall model where different project stages are implemented before proceeding to the next one. However, the traditional model does not provide room for the correction of errors, fixing of bugs, or addition of new features. As a result, the iterative waterfall model comes to fill in the gaps left by the traditional model. This represents the iterative waterfall model for software development.
Feasibility Study
This is the first step of software engineering. Experts evaluate whether it is feasible to carry out a given project. In this step, exerts assess the financial as well as technological provisions for the project. In the timetable integration system, this step will encompass studying the relevance and applicability of the technical skills of the developer team, the financial resources available, and the allocated time frame.
Requirements Analysis and Specification
This is the process of identifying the user needs on what the proposed system should do, look like, or achieve. The step comes up with two types of requirements: functional and nonfunctional. As discussed earlier, the functional requirements are customer-driven and define what the system must do. The non-functional requirements are not mandatory, but define how the system should look like, perform, or the environment in which it should be implemented.
Design
Software design converts user requirements into prototypes of different degrees depending on the project scale. The prototypes help programmers write code to solve convert the requirements into enactable and feasible software solutions. The design will encompass the creation of mockup screens, use case diagrams as well as database schemas which will guide the implementation of actual code. The mockup screens will be developed using Adobe Photoshop while the use case diagrams will be done using the Draw.io software. The database schemas will be created using MYSQL workbench, an open-source graphical database creation tool.
Coding and Unit Testing
Coding is the process of writing program source code using a particular programming language. The platform for wring code depends on the choice of programming language, project nature and scope, developer preference, and available technology. Developers may opt to use integrated developer environments (IDE) such as Visual Studio, NetBeans, Jetbrains, Eclipse, and Android Studio or opt for lightweight text editors such as Sublime, Brackets, and VS Code. IDEs are easier to configure and come with standard tools and plugins already installed, reducing the need for configurations and customization. They also provide direct ways of texting, debugging, building, running, and publishing projects. On the centrally, while text editors are lightweight and simpler, they require the installation of plugins to support different programming languages. The project will be developed in Java programming language using the NetBeans IDE. The front end will contain JavaScript, HTML, and CSS. For quick development, it will utilize the bootstrap JavaScript and CSS frameworks, Fontawesome and JQuery. The backend, which will use java will connect to the MySQL database on the SAMPP server.
Integration and System Testing
Integration is the process of merging different functions to create modules. Different units are merged to form modules which in turn form the system. Testing is carried out to ensure the project is performing as expected, and that any possibly detected bugs are fixed accordingly. In this project, different types of tests will be carried out including unit tests, integration, functional, performance, and acceptance tests. Unit tests are the lowest in an application and assess the operation of different functions. Integration tests will be used to ensure the working of different services and modules that make up the system. Functional tests will be used to verify the operation of the system with respect to specific business scenarios. The role of performance tests will be to establish how the system works under an established workload. As noted in the requirements, the maximum number of active connections to the system should not exceed 500. Acceptance tests will be carried out last to establish whether the system satisfies the target users. It will focus on user experience, ease of use, and general user reaction to the interface, graphics, colors, and response time.
Maintenance
Maintenance is the most expensive and lasting part of software development and integration. Over time, a system may need the addition or removal of modules, and the inclusion of new features and updates to match technological advances. The system will be subjected to continuous maintenance spearheaded by the developer team. The maintenance cost will be incurred by the institution and charged annually. Updates shall be implemented upon request or as soon as threats emerge. Security analysis may result in security patches which will be implemented on a timely basis.
Suitable DevOps Automated Tools for Project Development and Testing
Test Scenarios & The System Integration Test Specification
The system test scenario will be based on white box testing – testing the internal workings and code of a software application. The system test will include the external operation of the software with a schedule from the user’s point of view. Test scenario will include a check of fully integrated schedules, including external peripherals, in order to verify the interaction of schedule components with each other.
The system integration test will be based on managed dependencies. This is due to the fact that the out-of-process dependencies of schedule filling are under the full control of the user. These dependencies are accessible only through the application and interactions with the schedule are not visible to the external Internet. Interactions with managed dependencies relate to implementation details. Therefore, system integration test will include working with the database.
A single system for A/B testing will be used as assessment metrics. With the help of A/B tests, several options for the operation of tabs with a schedule can be compared. If one option was much superior to the other, then he was recognized as the winner. If the difference between the two options is small, statistical methods will be used to determine the best option. Thus, assessment metrics will be based on comparison and have options for evaluating satisfactory or unsatisfactory.
The prioritizing technique used in this project will be MSCW. According to it, the tasks and requirements that have the highest priority and should be the first priority will be applicable to the input and output of the schedule, without which the release will not be executed. Next, the priority will be the tasks of the should group, which are not crucial, but are still mandatory. For example, among such tasks will be the execution of graphics in the interface.
Test Scenarios
Conclusion & Lessons Learned
This web application was developed to manage class schedules. It is a system created to give college staff members better support. In order to forecast, the timetable module provides a stable foundation. The timetable management system offers a feature that allows users to create and view timetables for particular staff members and students. Additionally, this system includes a database that stores information and alerts related to the staff and student subjects. Through this project, I have learned how to strategize my personal projects and develop website prototypes for my future website development.