Tuesday, July 29, 2025

CST 499 Week 5

This week I made decent progress on my capstone project, which as a reminder is a solo project to build a staff portal for Nyamboyo Technical School (NTS). Technically, the deliverable features are already complete and I've been working on bonus features since

What project milestones did you accomplish this week?

  • Since the core features for the project are completed, I'm still developing bonus features for the portal.
  • Completed the mobile responsiveness update for the student manager application. This will help staff who need to update student information from their mobile devices, especially if they're unable to access a regular computer.
  • Updated the GitHub Readme which will significantly help future developers who volunteer with NTS.
  • I also devised a testing plan that will involve observing my client/supervisor naturally using the app.

What is your plan for next week?

  • This coming week, I intend to meet with my client so we can administer the testing plan. I will be certain to carefully note areas for improvement in the staff portal so I can hopefully build them before our course concludes. We are also going to discuss needed tweaks to the portal before testing, including standardizing our naming convention for app action buttons. Lastly, we are going to discuss future plans (since I will continue volunteering with NTS after the course).

What challenges, if any, are you currently facing in project development? Do you need instructor assistance?

  • No real challenges, thankfully. I will be certain to reach out in case I need help.

Monday, July 21, 2025

CST499 Week 4

This week, some great progress was made on my capstone project. As a reminder, I am (solo) building a staff portal web application for Nyamboyo Technical School (NTS), a nonprofit African organization that educates rural youth in Kenya. 

What project milestones did you accomplish this week? If you're working in a team, please list what you personally contributed, not the project status overall. 

As another reminder, I am basically done with the core features in my capstone scope, but have been building bonus apps and features for the portal in recent weeks. Below is a list of milestones that were accomplished this week: 

  • Designed, built, and deployed the Penpal Application, my second bonus application for the staff portal. This app will enable staff to manage their penpal program at the school (whereby each NTS student in the program is paired with at least one American student and each pair exchanges letters about once a month). 
  • Began refactoring the code in the student manager app to be mobile responsive, so that staff can use it on smaller screens when quick edits can be made in a pinch. I have made good progress on this so far, and it is almost ready for deployment, but must meet with client/supervisor first to get some feedback first. 
  • Began researching Render's capacity for automatic database rollbacks, so that we can hopefully plug the feature right into the staff portal frontend. This would again be quite helpful if any mistakes are ever made by staff with the database (which is definitely a nonzero chance occurrence). 

What is your plan for next week?

For this week, I had originally planned a testing phase by staff in Kenya, but it may be postponed until one of the next two weeks. The reason for this is that it will coincide far better with the testing report assignment that will apparently be released in a week or two for us capstone students. Thus, I have chosen to instead have a preliminary mini-testing phase with only my supervisor using the app naturally for several days and providing some more feedback and suggestions while we await the larger scale testing with Kenyan staff (and I will also be providing a tutorial session which will be great). 

In addition to undergoing our preliminary testing phase, I will continue making optimizations to the portal and its apps, especially finalizing the mobile responsiveness update to the student manager app and potentially at least one other app (need to consult my client first). Some more things I will work on are fixing up the GitHub repo readme for better maintainability, cleaning up some of the code across the project (for instance, I have several import statements that use long path names which can be improved with static variables), and figuring out how to plug in Render's native database rollback feature into our app, if it's possible. 

What challenges, if any, are you currently facing in project development? Do you need instructor assistance?

I am facing no real challenges at the moment, things are going very well in this project and I will be certain to reach out to instructors if I face any issues. Thanks!

Tuesday, July 15, 2025

CST499 Week 3

This week, decent progress was made on my capstone project. As a reminder, I'm in a solo project developing a staff portal for Nyamboyo Technical School, a nonprofit African org. 

What project milestones did you accomplish this week?

Since this week was our first phase of user testing (the core deliverables for the capstone are technically complete), we were able to thoroughly test the portal and applications, identifying several improvements and potential issues that need to be fixed, which is a big win for us. I went ahead and compiled the issues below (grouped by relevant app).

Staff Manager:

  • It is preferred to have the 'staff manager' app permission be explicitly assigned and removed to staff users, which would allow them to give certain staff conditional admin privileges. Thus, we need to reconfigure the app to allow the student manager app to be an option in the permissions section for managing staff role users.

Student Manager:

  • The wording on the actions should be changed. Right now, 'download template' and 'download report' overlap too heavily in their function. We can actually remove the 'download report' button for the time being, or change it to do what 'download' template currently does and then make 'download template' produce a blank excel file for adding new students. This may require additional research into finding the proper naming conventions for our features on the apps.
  • The frontend has an issue with dates not properly displaying. Specifically, the table will display dates that are 1 day ahead of the actual value in the database. This is suspected to be an issue with one of our framework tools that can be patched. It is also unknown if Kenyan staff can see this issue giving their different timezone, so this is important to consider.

Student Health:

  • Manual edits on health record entries would be very useful for the health app, this should work similar to the student manager application, with a modal appearing that allows the user to change any of the health entry details for the record (and it should of course automatically execute the health entry backend logic to re calculate BMI/percentile, flags, and notes).
  • Additionally, the 'download report' function should work with the table displayed, meaning that if a user filters any column and narrows the data in the table, these entries only should be included in the generated excel file. It is important to note the wording updates that will occur on the student manager application before changing this, to keep the apps consistent (see above for more details).

I began working on these tasks and was able to complete the manual edits on the student health application in addition to UI/UX improvements. I also began working on the frontend date inconsistency, the staff manager change, and the actions wording update, but as I was programming, realized that the portal may more or less work better without the changes I was testing. For instance, in researching the frontend dating issue (a classic timezone bug), it was discovered that patching it would mean that Kenyan staff would now see the date in the US standard rather than their preferred Kenyan standard (day-month-year). Furthermore, it turns out that they should in fact see the correct date on their end since they are ahead of UTC. When it came to the staff manager change, I programmed this too but then realized it defeats the purpose of having separate user staff and admin type roles, so the changes were shelved to a separate branch for our next discussion with the client (along with talking about the date issue). 

What is your plan for next week?

In short, completion of most of the above updates (certainly the wording update) will require another meeting with my client/supervisor (she is doing additional testing right now for this), and it is likely that most of them will be scrapped for the best. I will attempt to set a meeting for later this week and in the meantime get ahead on our next bonus feature, the penpal application. This app will appear similar to the health application but involve far less backend logic (definitely not a complicated CDC health data table). It will be used to track penpal letters between Kenyan students and American students, which cycles monthly (part of NTS' Penpal program). I'm very much looking forward to completing this app and as many more as possible so that the portal can be very feature rich by the time our course concludes.

What challenges, if any, are you currently facing in project development? Do you need instructor assistance? 

Thankfully, no real challenges as of now. Honestly, after going through the hassle that was learning to deploy the portal to Render, I feel well equipped to deal with any future issues entirely independently - but if I get stuck on something for longer than usual, I will be certain to reach out. Thanks! 

Monday, July 7, 2025

CST499 Week 2

What project milestones did you accomplish this week? If you're working in a team, please list what you personally contributed, not the project status overall.

This week, I made big progress on my capstone project. As a brief reminder, I'm (solo project) building an online staff portal for Nyamboyo Technical School (NTS), an African nonprofit organization who strives to educate rural Kenyan youth and young adults adults modernized, technical and vocational skills.

Since I have officially completed the core deliverables for the capstone project and am currently awaiting user testing (more on that in the next section), I went ahead and began developing bonus apps that the portal can use as well as UI/UX updates to the portal. This week in specific, I completed the following:

  • New application: Staff Manager. This app allows admin users to manage staff accounts, including creation and deletion of accounts and editing their details and app permissions.
  • Updated the profile page to be far more modern and professional.
  • Various UI/UX updates to portal, I will list them here:
    •  The login page was updated to remove the arbitrary  ‘forgot password’ link.
    • The login page login button was updated to include a dark/light dynamic onhover effect and to be triggered by the user pressing enter rather than having to manually click it.
    • The global sidebar was updated to include light/dark dynamic onhover effects on items.
    • The dashboard app cards were updated.
    • Icons across the whole portal were updated to be more specific and suitable.
        • The student manager and health app’s UIs were updated to be more consistent with each other and with future apps in the portal (for instance, a button that provides an Excel template file for the user to fill will always have text ‘Download Template’ and the lucide download icon

 What is your plan for next week?

Next week, I intend to begin developing a new app for the portal, though I am not 100% certain which idea I have would be most beneficial for NTS. Some ideas I have include:

  • An app for admins that would allow them to "rollback" the database to an earlier state. I believe Render technically has this feature natively for paid database instances, though. Regardless, if staff can directly trigger this feature from within the app rather than dealing with Render's platform dashboard, it can be a powerful addition to the portal. 
  • A messaging app, which could also lead to notifications and alerts features. For example, an admin can send a message to a teacher asking them to provide an updated list of students for a term, which could set an alert for the teacher when they log in (and potentially an email alert, too). 
  • An AI-integration to the portal, for example, a chatbot that can assist Kenyan staff with technical questions. I'm excited to try implementing this at some point during our capstone timeline, although I need to iron out the details and consider ethical implications ahead of time, especially security-wise. 

In addition to beginning development of our next bonus app (pending client meeting/discussion), I will attempt to update our student manager and health apps to have more features (for instance, manual insertions/edits on the student health app records) and also be mobile responsive like the rest of the portal. At the moment, the two apps work flawlessly on desktop/laptop web browsers, but if they can work with mobile devices, too, that could be very helpful for staff who are in a pinch. 

What challenges, if any, are you currently facing in project development? Do you need instructor assistance?

Currently, I am thankfully facing no challenges and development is going smoothly. I am especially grateful for having so much support from instructors and mentors and will be certain to reach out if needed.

Tuesday, July 1, 2025

CST 499 Week 1

Since my last update (the status update at the end of CST489), I have thankfully made significant progress on the project. In fact, the core deliverables outlined in my project scope are essentially complete.

As a brief reminder, I'm (solo project) building an online staff portal for Nyamboyo Technical School(NTS), an African nonprofit organization who strives to educate rural Kenyan youth and young adults adults modernized, technical and vocational skills.

Here is the progress I made since the previous update:

• I finally deployed the portal via Render, as a single, monolithic service as was planned. I was experiencing significant challenges configuring my project structure in a manner that wouldn't trigger Render's error code for Node applications. Specifically, Render wants the 'app' folder to be in the same directory of the Next.js installation, which for me wasn't really feasible, given the custom structure I began with from the beginning of development. Even still, I tried refactoring everything into a more friendly structure for Render and it still failed. That's when I realized I could containerized the project with Docker and then deploy it to Render as a Docker app rather than a Node app without having to worry about the strict structural expectations on Render. After containerized containerized Docker, I successfully deployed to Render.
• I also completed and deployed the first version of the third and final core deliverable for my capstone, the student health application. The student health app was successfully plugged into the portals authentication system and deployed to the live service after preliminary testing.
• In deploying the student health app, I was also able to establish a proper continuous deployment pipeline for myself and future developers who work with NTS, solving the maintainability issue that NTS' original staff portal had (more details of this are in my proposal). Future developers will now simply branch off of main for building their features and configure the environmental variables. Then, when done with development and testing, they merge their branch into main, which will now automatically deploy the changes to the live service.
• The portal was of course tested further to confirm security, stability and functionality with the two live apps.

Looking forward, the next stage of my capstone is extensive user testing, debugging, and improvements to UI/UX. I know for certain that the portal can benefit from more features, such as expanding those in the profile page and perhaps adding specialized features for admins (for instance, to manage staff accounts).

I am currently in contact with my supervisor (the 'client') to set up a live training session with school staff in Kenya, to help them learn how to use the portal and discuss further improvements.