SDSM:Index: Difference between revisions

From SMUSwiki
Jump to navigation Jump to search
(Add RETURN links to each section to go back to the TOC.)
No edit summary
Line 20: Line 20:
== Introduction ==
== Introduction ==


''TODO.''
=== System 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.


[[#top|RETURN]]
The older '''SDS''' version ('''SDS Gavintech'''), is actively in use in
production, and its development is mostly frozen, with minimal updates only.


=== System Overview ===
The newer '''SDS''' version ('''Laravel''' or '''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.


Brief description of the system, its main components, and its purpose.
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.


''TODO.''
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.


[[#top|RETURN]]
[[#top|RETURN]]

Revision as of 15:00, 30 April 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

RETURN

Description

This document describes an active effort running through 2024 to modernize the School Data System (SDS) of St. Michaels University School (SMUS).

RETURN

Introduction

System 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 (Laravel or 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.

RETURN

Purpose and Scope

Clarify the intended use of the documentation and its intended audience.

TODO.

RETURN

Audience of the Documentation

Specify who the documentation is written for (e.g., developers, system administrators, end-users).

TODO.

RETURN

System Architecture

TODO.

RETURN

High-Level Architecture

Overview of the system's architecture, including major components and how they interact.

TODO.

RETURN

System Components and Interactions

Detailed description of each system component and its role.

TODO.

RETURN

Network Diagrams

Visual representations of network and system architecture, if applicable.

TODO.

RETURN

Environment Setup

TODO.

RETURN

Hardware Requirements

Specifications for necessary hardware.

TODO.

RETURN

Software Requirements

Required software and versions.

TODO.

RETURN

Environment Configuration

Instructions for setting up development, testing, and production environments.

TODO.

RETURN

Client Requirements

Required software and versions.

TODO.

RETURN

Database Documentation

TODO.

RETURN

Database Schema

Detailed diagrams and descriptions of database tables, fields, data types, and relations.

TODO.

RETURN

Data Dictionary

Detailed definitions of all database elements.

TODO.

RETURN

Entity-Relationship Diagrams

Visual representation of data entities and relationships.

TODO.

RETURN

Database Performance Metrics

Information on database performance and optimization.

TODO.

RETURN

Codebase Overview

TODO.

RETURN

Languages and Frameworks

Information about programming languages and frameworks used.

TODO.

RETURN

Repository Structure

Description of the code repository structure.

TODO.

RETURN

Coding Standards and Conventions

Guidelines followed in the codebase.

TODO.

RETURN

Repository Access

Instructions to access code repository.

TODO.

RETURN

API Documentation

TODO.

RETURN

List of Endpoints

Detailed list of API endpoints and their functions.

TODO.

RETURN

Request/Response Formats

Specifications of request and response formats.

TODO.

RETURN

Authentication and Authorization

Methods used for API security.

TODO.

RETURN

User Interface Documentation

TODO.

RETURN

Screenshots and Descriptions

Visuals and descriptions of key interfaces.

TODO.

RETURN

User Flow Diagrams

Diagrams showing user navigation through the system.

TODO.

RETURN

Security Protocols

TODO.

RETURN

Data Security Measures

Techniques used for securing data.

TODO.

RETURN

Network Security Configurations

Network security tools and configurations.

TODO.

RETURN

Installation and Deployment

TODO.

RETURN

Installation Guide

Step-by-step installation instructions.

TODO.

RETURN

Deployment Procedures

Process for deploying updates or new releases.

TODO.

RETURN

CI/CD Practices

Continuous integration and deployment methodologies used.

TODO.

RETURN

Testing and Quality Assurance

TODO.

RETURN

Testing Procedures

Overview of testing strategies and methodologies.

TODO.

RETURN

Test Case Descriptions

Examples of key test cases.

TODO.

RETURN

Automated Testing Frameworks

Description of automated testing setup.

TODO.

RETURN

Performance and Optimization

TODO.

RETURN

System Performance Benchmarks

Key performance indicators and benchmarks.

TODO.

RETURN

Optimization Strategies

Techniques and practices for optimizing system performance.

TODO.

RETURN

Backup and Recovery

TODO.

RETURN

Backup Procedures and Schedules

How and when backups are conducted.

TODO.

RETURN

Disaster Recovery Plan

Steps and procedures for system recovery in case of a disaster.

TODO.

RETURN

Access Control

TODO.

RETURN

User Roles and Permissions

Description of different user roles and their access levels.

TODO.

RETURN

Access Management Procedures

How user access is managed and controlled.

TODO.

RETURN

System Integration

TODO.

RETURN

External System Integration

Details of integration with external systems or services.

TODO.

RETURN

Data Exchange Protocols

Protocols used for data exchange with external systems.

TODO.

RETURN

Localization and Internationalization (if applicable)

TODO.

RETURN

Supported Languages

List of languages the system supports.

TODO.

RETURN

Cultural Adaptations

Adjustments made for different cultural or regional needs.

TODO.

RETURN

Scalability and Future Development

TODO.

RETURN

Scalability Strategies

Plans and techniques for scaling the system.

TODO.

RETURN

Expansion Plans and Roadmap

Future development plans and system evolution roadmap.

TODO.

RETURN

Customization and Extensibility

TODO.

RETURN

Customization Options

Options available for system customization.

TODO.

RETURN

API Documentation for Extensibility

Documentation for APIs available for extending the system.

TODO.

RETURN

Operational Best Practices

TODO.

RETURN

System Maintenance Guidelines

Best practices for maintaining the system.

TODO.

RETURN

Security Best Practices

Guidelines for maintaining security.

TODO.

RETURN

Audit Trails and Logging

Information on system logging and audit trails.

TODO.

RETURN

Feedback and Continuous Improvement

TODO.

RETURN

Feedback Mechanisms

How users can provide feedback.

TODO.

RETURN

Improvement Processes

How feedback is incorporated into system improvements.

TODO.

RETURN

Appendices

TODO.

RETURN

Glossary of Terms

Definitions of technical terms used.

TODO.

RETURN

Authors

Primarily written by Darren Duncan.

Includes portions written by or derived from sources written by:

  • Chetan Sondagar

RETURN

License and Copyright

Copyright © 2024, St. Michaels University School.

RETURN