Project Blog Main


Reorganizing

June 3, 2024

New projects

Been a while since I updated this. Had to deal with a database issue with my hosting provider, went on a vacation, then go sucked into a big project at work that by the end of the day I didn't want to spend another minute looking at code. Things are slowing down a little and I'm able to get back into some of my own projects, including a programming book I've been working on and a few small applications for my site. The changes to the book include reorganizing the content into what I'm hoping is a more sensible path.

One of the applications I'm working on is a list manager, simple in concept. A simple application that allows users to build lists such as grocery lists, packing lists, places to visit, favorite movies or books, etc. Hoping to have something up and running in a few weeks.

Another big change is going through the Angular front end of my Monolith page and reorganizing files so that each application is self-contained (yes, I know, should have been doing this from the start and would have saved me time).

Back to the top

I knew I would forget to update this

March 18, 2024

Long time since last post

I knew this would happen when I started this, I would be good for posting a few updates then I would forget a few then be stuck trying to remember what I worked on since the last update.

Teachers and the grade book

I finished most of the grade book from the teacher perspective. Teachers can now log in, select the assignments for each course, and pair them up with students. Trying to update the display to only show assignments that haven't been assigned to students would have been too much for me to try taking on right now so I went with a different approach. The assignments are selected first, then the students, that information is sent back. A new entry is only added to the database if if that pairing isn't already there, not the most efficient but it works.

Another part of the grade book I worked on was showing the current grade and allowing teachers to provide a grade for each assignment. This part still needs a lot of work. For now, the page simply displays all of the assignments with some basic sorting. I have most of the elements in place to eventually allow for filtering based on assignment type, the week and/or the course.

Updating courses and prerequisites

This has been something I needed to work on for a while. I have been working with a small set of middle and high school courses that could be assigned to students at any time. I am starting to go through and updated and apply the idea of course prerequisites and tie it in with the grade book and implement a system of keeping track of which courses the students have complete. Then, I'll be able to update the process of assign multiple courses to individual students to only show courses where they have completed the required courses, example, only show World History 2 if the student has completed World History 1.

Something new

This has been something I've wanted to work on for a while. I recently showed my son how to play the card game War, then sat down to write a program to play it. There won't be much of a user interface since all it would be is typing in a command or pressing a button to play the next card, over and over, until one player wins. It's mostly an exercise in figuring out the logic behind the game.

New additions to either here or my spring boot application

Trying to come up with some new projects that I can add to either of my main pages, possibly a cook book of different recipes I use in the kitchen

Back to the top

Crossed another big hurdle

Feb. 16, 2024

Reusing code for selecting assignments

This turned out to be a bust, may try again later with a service but I'm thinking that since I'm reusing the same component, trying to do what I'm doing is not going to be done in a clean manner.

Pairing Assignments with Students and Submitting Grades

Did some more work on moving forward with being able to pair up students with assignments for courses, leading to the eventual goal of teachers having a digital gradebook. On Thursday, I finished up most of the work on the front and back end to create all of the entries for adding grade entry data into the database, and on Friday I connected the dots, as well as added a few interface changes, now the teachers can create grade entries for multiple students in multiple classes. Next week I'll move on to the grade book

Post formatting

Also, I'm making some changes to the formatting for each of these posts, still new to the world of blogging

Back to the top

Going against D-R-Y

Feb. 9, 2024

The last few days have been pretty busy with my School Manager application, let's see if I can remember everything

  • Did some code clean up to avoid repeating some tables in the code by moving the table to a new component. This meant getting a lot more experience with using the Input and Output features to pass information between the different parent and child components
  • Started working on getting everything working for teachers to pair up assignments with students and build up their grade books, but got side tracked, hoping to finish that out this week or maybe next. For now, teachers can pull up the list of assignments they have created, select one or more, and view which ones they have selected, then they can select one or more students. Next steps are building out the transfer object to get that to the back end and then setting up the back end to receive and process.
  • Came up with a plan for how I'm going to handle password resets for demonstration purposes. Going to use the '3 security question' option for now. I have a plan for emailing a reset link but since I do not have an email service set up, and don't want to pay the extra money each month for a demonstration model, that will wait.
  • Finished up all of the filtering functionality when selecting courses. With this, when setting one student up with multiple classes, as the staff selects a course, all other entries of that course throughout the day as well as all courses taking place at the same time, are removed from the displayed list of available courses. Example, if the staff member selects Biology 1st period/hour, then all other Biology courses and all classes during that same hour are removed. Also set up the code to remove those filter and update the display list if a course is removed from the student's schedule.
  • Running into a problem when selecting assignments to pair with students and getting the child components to update after I remove one from the selected list. As much as I want to keep the parent-child component setup, I'm thinking I may have to abandon that idea

Back to the top

First Post

Feb. 5, 2024

I decided the other day to start up this little blog as a way of keeping the few of you that check out my site up to date on projects I'm working on, and to show that I am working on things when updates on my various sites start slowing down

This first post is going to be big since I'm going to talk about some stuff that's already up and running as well as provide some info about bigger project that I'm working on and will add to my Spring monolith project.

  • First up is the obvious, this website. Built using Python/Django with some Bootstrap styling on the front end.
  • Next up was a Java/Spring Boot application that is intended to be a portfolio monolithic collection of applications that come to mind. I started with a web based version of a classic: a Caesar Cipher application. Enter a message, select one or two keys, and encrypt. Encryption isn't good without a way to decrypt so that's there as well.
  • Next up was an updated version of a site I first built several years ago using HTML, CSS, PHP and a MySQL database: a movie and TV Show database. This time, built using Java/Spring with a Postgres database and bootstrap styling. This went back to my early days of programming when I was starting out with Microsoft Access databases and experimenting with many-to-many relationships
  • Then improved on the Caesar Cipher with a Passphrase Cipher. You can read up more on it on the site but the basic idea was instead of using numbers to set the key for shifting characters, use a word or set of words. Each character in the message is shifted by a letter from the passphrase.
  • After that, I worked on a registration/login/logout system. Nothing fancy to it, it doesn't unlock or hold any information, doesn't allow you to suddenly have access to something on the site. It's just that, a registration, login and logout. I used it as a real life practice of getting information from a form, generating a salt hash, hashing a password, storing in the database, then checking the right information is provided when logging in.
  • My big project lately has been a school management application. My child's school has a website for parents to log in and view/edit some information (addresses, emergency contact) but it is far from perfect (I've had problems fixing errors, thankfully the basic information is there). That played into another programming tool I've used when learning new languages, the idea of objects with nested objects and/or groupings of objects. In this case, keeping track of classes, with students, with grades, grouped by teachers, etc.This led me to start developing a management tool geared towards almost everyone involved in the education system.
    • Staff being able to:
      • Validate parents and students
      • Building up courses and assigning teachers to those course
      • Assigning students to courses and viewing who was enrolled in which courses
    • Teachers being able to:
      • View who is enrolled in their courses
      • Create assignments and assign to students
      • Enter, track, and update grades per student
    • Parents being able to:
      • View how their children are doing on grades
      • Update contact information for themselves, their children, others who are authorized to pick children up from school or who should be contacted in case the parents are unavailable
    • Students being able to:
      • View their grades

    So far, I've been able to get the following working:

    • Parents are able to register both themselves and their children (after being verified by school staff)
    • Staff are able to verify parents and students (right now this is just pressing a button, real world this would likely include submitting pictures of ID, billing addresses, etc)
    • Teachers are able to create new homework, quiz or test assignments
    • Staff are able to assign students to courses. This comes in two flavors: K-6 and 7-12. In the K-6 version, this represents Kindergarden through 6th grade in most schools where students have one class throughout the year. In 7-12, this represents middle and high school where each student has 6 or more courses plus a homeroom
  • And now, this blog. Because I don't feel like trying to manage users and controlling access at this point, there is no form for submitting these blog entries. I write them on my local machine and add them straight to the hosting database.

Back to the top