gbowne1 / random_c_cpp_programs

A collection of my random opensource C and C++ programs
MIT License
3 stars 6 forks source link

[Todo][Feature] Possible gradebook program features #12

Closed gbowne1 closed 9 months ago

gbowne1 commented 9 months ago

Some possible feature(s)?

andrewlod commented 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!

andrewlod commented 9 months ago

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.

gbowne1 commented 9 months ago

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

andrewlod commented 9 months ago

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.

gbowne1 commented 9 months ago

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.

gbowne1 commented 9 months ago

At some point we will have to make this program its own repository.

andrewlod commented 9 months ago

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.

andrewlod commented 9 months ago

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.

gbowne1 commented 9 months ago

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

gbowne1 commented 9 months ago

I would think at least start with our local standards:

https://app.leg.wa.gov/wac/default.aspx?cite=392-415-050

and

https://ospi.k12.wa.us/sites/default/files/2023-08/ospi-student-learning-and-grading-guidance_4-21-2020.pdf

and

https://www.sbe.wa.gov/news/standards-based-grading

gbowne1 commented 9 months ago

added @andrewlod as contributor, and moved this project to: https://github.com/gbowne1/gradebook-management-system for future development.