Closed gbowne1 closed 9 months ago
I will list below some actions that would be performed by users, in order to break the authentication/permissions/server problem into small ones and avoid major refactoring in the future:
Do System Administrators have all permissions, including changing grades? Or maybe they will only be able to create other users, except administrators? Let me know if you have anything to add/change!
I imagine each of these (create, read, update, delete) as individual functions, part of a structure called Controller, and each of them will check if the user calling them has enough permissions to perform the action. In a server, this would not be much different.
like as in C# MVC.. yeah you would have a controller class that basically did all the controlled the operations. I originally envisioned we could do something like that.
The other thing is that while there are grading standards in the US, some individual schools // districts may choose to grade using other methods.. however there would be plenty of similarities across all methods.
but, I like those ideas @andrewlod
like as in C# MVC.. yeah you would have a controller class that basically did all the controlled the operations. I originally envisioned we could do something like that.
Exactly! Each role would then have their own view, to access their resources.
The other thing is that while there are grading standards in the US, some individual schools // districts may choose to grade using other methods.. however there would be plenty of similarities across all methods.
Are the differences among these grading standards something simple like range (i.e. A-F, 0-10, 0-100), or other things as well, such as average calculation method (weighted, standard...)? Depending on complexity, we could just create a class (GradingStandard) that standardizes the ranges (i.e. convert A-F to 0-100) or even use something more sophisticated like polymorphism, with an interface with grading actions, and each grading standard would implement these actions accordingly.
Yeah. I agree with those ideas 100%.
Can we just make it easy for whichever school/district is using it to customize it for their users?
I don't know enough about grading.
At some point we will have to make this program its own repository.
Can we just make it easy for whichever school/district is using it to customize it for their users?
Of course. I think it would be wise to first figure out what features are necessary to create a fully customizable grade system.
At some point we will have to make this program its own repository.
No worries! As you own the project, feel free to move it into a new repository. Remember that .gitignore and the issues must be moved there as well.
Creating a documentation with README.md is also nice, as the project grows more complex. I can help with that too.
When a contributor has 5 successfully merged PRs I like to invite them to be a contributor as that made the most sense. I can do that soon.
I just put gradebook in this repository since it was then only 2 files and that made sense too.
I have a pile of other C and C++ programs and repositories with C & C++ that need lots of attention.
When I was in college in the late 90s early 2k's, I wrote small programs on paper and kept them on a 3.5" floppy and in a notebook. Now I am trying to get them all onto source control and in a public repository as they deserve to be protected preserved and open source and improved upon
I would think at least start with our local standards:
https://app.leg.wa.gov/wac/default.aspx?cite=392-415-050
and
and
added @andrewlod as contributor, and moved this project to: https://github.com/gbowne1/gradebook-management-system for future development.
Some possible feature(s)?
Login/User Authentication: Implement a login system to ensure only authorized users can access the gradebook. This will also allow each user to have their own unique settings and preferences within the application. Teachers and Administration and other School Staff could possibly use this?
Student Profiles: Each student should have a profile that includes personal details like name, grade level, and any special needs or accommodations they may have.
Classroom Management: The ability to manage different classrooms. For example, teachers should be able to create classes, add students to them, and assign grades.
Grade Calculation Methods: Allow the teacher to choose different methods for calculating grades, such as weighted average, standard average, or any custom method.
Notifications: Send notifications to parents or guardians when a grade is updated or when a report card is due. Email? Letter?
Report Generation: Generate reports for individual students or entire classrooms. These reports could include overall grades, attendance records, disciplinary incidents, report cards, progress reports, etc.
Data Visualization: Provide visual representations of data such as graphs showing academic progress over time. This might be a bit harder, but useful? I don't know anything that would allow graphical graphing in C++?
Error Checking Handling and Logging: Improve error handling and logging capabilities to help identify and fix issues quickly.
Security Measures: Ensure data privacy and security by encrypting sensitive information, using secure protocols for data transfer, and regularly updating software versions. OpenSSL?