SDSM:Index: Difference between revisions
(Write first version of Introduction: System Overview section.) |
(Turn the initial proposed SDSM document skeleton by Chetan Sondagar into an appendix for reference while the actual document structure can evolve differently.) |
||
Line 6: | Line 6: | ||
== Name == | == Name == | ||
SDS Modernization (SDSM) - Modernization of SMUS School Data System | '''SDS Modernization (SDSM)''' - Modernization of SMUS School Data System | ||
[[#top|RETURN]] | [[#top|RETURN]] | ||
Line 18: | Line 18: | ||
[[#top|RETURN]] | [[#top|RETURN]] | ||
== | == Overview == | ||
'''School Data System (SDS)''' is an electronic records management system | '''School Data System (SDS)''' is an electronic records management system | ||
Line 75: | Line 73: | ||
abandoned, very non-modern, and bespoke, all of the other named | abandoned, very non-modern, and bespoke, all of the other named | ||
dependencies are actively maintained, modern, and very popular. | dependencies are actively maintained, modern, and very popular. | ||
[[#top|RETURN]] | [[#top|RETURN]] | ||
Line 580: | Line 78: | ||
== Appendices == | == Appendices == | ||
=== Proposed Layout of SDSM by Chetan Sondagar === | |||
=== | |||
Chetan Sondagar proposed, on 2024 April 10, the following layout for this | |||
'''SDS Modernization (SDSM)''' document. The actual document layout ended | |||
up being different, and the proposal is shown here for posterity. | |||
But while the actual document was in development and had substantial | |||
missing content, the proposal also served to illustrate what was missing. | |||
'' | # '''Introduction''' | ||
#* '''System Overview:''' Brief description of the system, its main components, and its purpose. | |||
#* '''Purpose and Scope:''' Clarify the intended use of the documentation and its intended audience. | |||
#* '''Audience of the Documentation:''' Specify who the documentation is written for (e.g., developers, system administrators, end-users). | |||
# '''System Architecture''' | |||
#* '''High-Level Architecture:''' Overview of the system's architecture, including major components and how they interact. | |||
#* '''System Components and Interactions:''' Detailed description of each system component and its role. | |||
#* '''Network Diagrams:''' Visual representations of network and system architecture, if applicable. | |||
# '''Environment Setup''' | |||
#* '''Hardware Requirements:''' Specifications for necessary hardware. | |||
#* '''Software Requirements:''' Required software and versions. | |||
#* '''Environment Configuration:''' Instructions for setting up development, testing, and production environments. | |||
#* '''Client Requirements:''' Required software and versions. | |||
# '''Database Documentation''' | |||
#* '''Database Schema:''' Detailed diagrams and descriptions of database tables, fields, data types, and relations. | |||
#* '''Data Dictionary:''' Detailed definitions of all database elements. | |||
#* '''Entity-Relationship Diagrams:''' Visual representation of data entities and relationships. | |||
#* '''Database Performance Metrics:''' Information on database performance and optimization. | |||
# '''Codebase Overview''' | |||
#* '''Languages and Frameworks:''' Information about programming languages and frameworks used. | |||
#* '''Repository Structure:''' Description of the code repository structure. | |||
#* '''Coding Standards and Conventions:''' Guidelines followed in the codebase. | |||
#* '''Repository Access:''' Instructions to access code repository. | |||
# '''API Documentation''' | |||
#* '''List of Endpoints:''' Detailed list of API endpoints and their functions. | |||
#* '''Request/Response Formats:''' Specifications of request and response formats. | |||
#* '''Authentication and Authorization:''' Methods used for API security. | |||
# '''User Interface Documentation''' | |||
#* '''Screenshots and Descriptions:''' Visuals and descriptions of key interfaces. | |||
#* '''User Flow Diagrams:''' Diagrams showing user navigation through the system. | |||
# '''Security Protocols''' | |||
#* '''Data Security Measures:''' Techniques used for securing data. | |||
#* '''Network Security Configurations:''' Network security tools and configurations. | |||
# '''Installation and Deployment''' | |||
#* '''Installation Guide:''' Step-by-step installation instructions. | |||
#* '''Deployment Procedures:''' Process for deploying updates or new releases. | |||
#* '''CI/CD Practices:''' Continuous integration and deployment methodologies used. | |||
# '''Testing and Quality Assurance''' | |||
#* '''Testing Procedures:''' Overview of testing strategies and methodologies. | |||
#* '''Test Case Descriptions:''' Examples of key test cases. | |||
#* '''Automated Testing Frameworks:''' Description of automated testing setup. | |||
# '''Performance and Optimization''' | |||
#* '''System Performance Benchmarks:''' Key performance indicators and benchmarks. | |||
#* '''Optimization Strategies:''' Techniques and practices for optimizing system performance. | |||
# '''Backup and Recovery''' | |||
#* '''Backup Procedures and Schedules:''' How and when backups are conducted. | |||
#* '''Disaster Recovery Plan:''' Steps and procedures for system recovery in case of a disaster. | |||
# '''Access Control''' | |||
#* '''User Roles and Permissions:''' Description of different user roles and their access levels. | |||
#* '''Access Management Procedures:''' How user access is managed and controlled. | |||
# '''System Integration''' | |||
#* '''External System Integration:''' Details of integration with external systems or services. | |||
#* '''Data Exchange Protocols:''' Protocols used for data exchange with external systems. | |||
# '''Localization and Internationalization (if applicable)''' | |||
#* '''Supported Languages:''' List of languages the system supports. | |||
#* '''Cultural Adaptations:''' Adjustments made for different cultural or regional needs. | |||
# '''Scalability and Future Development''' | |||
#* '''Scalability Strategies:''' Plans and techniques for scaling the system. | |||
#* '''Expansion Plans and Roadmap:''' Future development plans and system evolution roadmap. | |||
# '''Customization and Extensibility''' | |||
#* '''Customization Options:''' Options available for system customization. | |||
#* '''API Documentation for Extensibility:''' Documentation for APIs available for extending the system. | |||
# '''Operational Best Practices''' | |||
#* '''System Maintenance Guidelines:''' Best practices for maintaining the system. | |||
#* '''Security Best Practices:''' Guidelines for maintaining security. | |||
#* '''Audit Trails and Logging:''' Information on system logging and audit trails. | |||
# '''Feedback and Continuous Improvement''' | |||
#* '''Feedback Mechanisms:''' How users can provide feedback. | |||
#* '''Improvement Processes:''' How feedback is incorporated into system improvements. | |||
# '''Appendices''' | |||
#* '''Glossary of Terms:''' Definitions of technical terms used. | |||
[[#top|RETURN]] | [[#top|RETURN]] |
Revision as of 13:44, 1 May 2024
This document consists of multiple parts; for a directory to all of the
parts, see SDSM:Index.
Name
SDS Modernization (SDSM) - Modernization of SMUS School Data System
Description
This document describes an active effort running through 2024 to modernize the School Data System (SDS) of St. Michaels University School (SMUS).
Overview
School Data System (SDS) is an electronic records management system that empowers a school's fundamental operations by managing the school's records of its students and related data and business processes. This includes tracking students' identities, enrolment, classes, and marks. SDS is used directly by students, their parents, their teachers, and other staff of a school having various roles.
SDS is meant in principle to be usable by any school, but first and foremost to meet the specific needs of St. Michaels University School (SMUS). SMUS is the only school actually using it as of 2024, but SDS may be made available to other schools later. Historically, SDS was also used by Brentwood College School.
SDS has a client-server architecture, hosted on a network as a web server, and used by way of a web client. SDS should be compatible with all modern web clients, including Mozilla FireFox, Google Chrome, Microsoft Edge, and Apple Safari; it should be usable with all modern client devices and operating systems.
SMUS hosts all of its SDS instances, production and testing, on premises on network servers located at its Richmond Road campus. They are not hosted by a third party, whether "cloud" or otherwise.
See https://sds.smus.ca for the production instance.
SDS has 2 main versions in April of 2024, older and newer.
The older SDS version (SDS Gavintech), is actively in use in production, and its development is mostly frozen, with minimal updates only.
The newer SDS version (SDS Laravel or SDS API), is not currently used in production, and is incomplete; nearly all current development work is on this version, and it is intended to replace the older version in production once it is sufficiently complete.
The newer SDS version is meant to have essentially the same outward-facing or user-visible feature set, behavior, and appearance as the older version. The newer version also uses essentially the same SQL database schema as the older version, and they actively share a database, which makes for a more seamless migration as the database doesn't have to be "converted". Within these constraints of looking the same to users and having the same database, the new version is almost completely different internally, with a new internal code structure that is a lot more modern.
Each SDS version is written in the PHP programming language and uses a MySQL database. The newer version uses the Laravel PHP application framework, while the older version uses the Gavintech PHP framework. Both versions' production instances are on servers running the Ubuntu operating system and are behind an Apache web server. While Gavintech is essentially abandoned, very non-modern, and bespoke, all of the other named dependencies are actively maintained, modern, and very popular.
Appendices
Proposed Layout of SDSM by Chetan Sondagar
Chetan Sondagar proposed, on 2024 April 10, the following layout for this SDS Modernization (SDSM) document. The actual document layout ended up being different, and the proposal is shown here for posterity. But while the actual document was in development and had substantial missing content, the proposal also served to illustrate what was missing.
- Introduction
- System Overview: Brief description of the system, its main components, and its purpose.
- Purpose and Scope: Clarify the intended use of the documentation and its intended audience.
- Audience of the Documentation: Specify who the documentation is written for (e.g., developers, system administrators, end-users).
- System Architecture
- High-Level Architecture: Overview of the system's architecture, including major components and how they interact.
- System Components and Interactions: Detailed description of each system component and its role.
- Network Diagrams: Visual representations of network and system architecture, if applicable.
- Environment Setup
- Hardware Requirements: Specifications for necessary hardware.
- Software Requirements: Required software and versions.
- Environment Configuration: Instructions for setting up development, testing, and production environments.
- Client Requirements: Required software and versions.
- Database Documentation
- Database Schema: Detailed diagrams and descriptions of database tables, fields, data types, and relations.
- Data Dictionary: Detailed definitions of all database elements.
- Entity-Relationship Diagrams: Visual representation of data entities and relationships.
- Database Performance Metrics: Information on database performance and optimization.
- Codebase Overview
- Languages and Frameworks: Information about programming languages and frameworks used.
- Repository Structure: Description of the code repository structure.
- Coding Standards and Conventions: Guidelines followed in the codebase.
- Repository Access: Instructions to access code repository.
- API Documentation
- List of Endpoints: Detailed list of API endpoints and their functions.
- Request/Response Formats: Specifications of request and response formats.
- Authentication and Authorization: Methods used for API security.
- User Interface Documentation
- Screenshots and Descriptions: Visuals and descriptions of key interfaces.
- User Flow Diagrams: Diagrams showing user navigation through the system.
- Security Protocols
- Data Security Measures: Techniques used for securing data.
- Network Security Configurations: Network security tools and configurations.
- Installation and Deployment
- Installation Guide: Step-by-step installation instructions.
- Deployment Procedures: Process for deploying updates or new releases.
- CI/CD Practices: Continuous integration and deployment methodologies used.
- Testing and Quality Assurance
- Testing Procedures: Overview of testing strategies and methodologies.
- Test Case Descriptions: Examples of key test cases.
- Automated Testing Frameworks: Description of automated testing setup.
- Performance and Optimization
- System Performance Benchmarks: Key performance indicators and benchmarks.
- Optimization Strategies: Techniques and practices for optimizing system performance.
- Backup and Recovery
- Backup Procedures and Schedules: How and when backups are conducted.
- Disaster Recovery Plan: Steps and procedures for system recovery in case of a disaster.
- Access Control
- User Roles and Permissions: Description of different user roles and their access levels.
- Access Management Procedures: How user access is managed and controlled.
- System Integration
- External System Integration: Details of integration with external systems or services.
- Data Exchange Protocols: Protocols used for data exchange with external systems.
- Localization and Internationalization (if applicable)
- Supported Languages: List of languages the system supports.
- Cultural Adaptations: Adjustments made for different cultural or regional needs.
- Scalability and Future Development
- Scalability Strategies: Plans and techniques for scaling the system.
- Expansion Plans and Roadmap: Future development plans and system evolution roadmap.
- Customization and Extensibility
- Customization Options: Options available for system customization.
- API Documentation for Extensibility: Documentation for APIs available for extending the system.
- Operational Best Practices
- System Maintenance Guidelines: Best practices for maintaining the system.
- Security Best Practices: Guidelines for maintaining security.
- Audit Trails and Logging: Information on system logging and audit trails.
- Feedback and Continuous Improvement
- Feedback Mechanisms: How users can provide feedback.
- Improvement Processes: How feedback is incorporated into system improvements.
- Appendices
- Glossary of Terms: Definitions of technical terms used.
Authors
Primarily written by Darren Duncan.
Includes portions written by or derived from sources written by:
- Chetan Sondagar
License and Copyright
Copyright © 2024, St. Michaels University School.