Category Archives: CS-448

Embarking on the Final Chapter

Greetings, fellow enthusiasts of code and programming! I’m Hieu Tran, a senior majoring in computer science, and I’m thrilled to welcome you to my latest blogging adventure. As I step into the realm of CS-448 Software Development Capstone, I can’t help but feel a blend of excitement and anticipation.

This blog marks a significant milestone in my academic journey, representing the beginning of my final computer science course before donning the cap and gown in May 2024. The Software Development Capstone promises to be a culmination of the knowledge and skills acquired throughout my studies, providing a platform to showcase and apply what I’ve learned in a real-world context.

As I navigate through this capstone experience, I’m eager to share my insights, challenges, and triumphs in the realm of software development. From coding intricacies to project management strategies, I aim to document the various facets of this course that contribute to my growth as a computer scientist.

To my fellow readers and learners, whether you’re a seasoned developer or just starting your coding journey, let’s embark on this final chapter together. As I delve into the complexities of software development, I invite you to join me in exploring the ever-evolving landscape of computer science.

Here’s to a semester of learning, coding, and making the most of every opportunity that CS-448 Software Development Capstone presents. May this journey be as enlightening and rewarding for you as it promises to be for me. Cheers to the coding adventures that lie ahead!

From the blog CS@Worcester – Hieu Tran Blog by Trung Hiếu and used with permission of the author. All other rights reserved by the author.

An Intro to LibreFoodPantry and Thea’s Pantry

In reviewing the information about LibreFoodPantry at their website as preparation for work in the Software Development Capstone, one particular point that I found interesting and surprising – but enlightening was a portion of the Mission statement. Through its Free Open Source Software and other features, LFP aims to convey to our communities and the world as a whole that computing can be used for social good. I had not thought about the project from this perspective, but it is an interesting and exciting value proposition and completely valid – computing could likely be used in many other instances for social good.

In exploring the subsystems in the repository for Thea’s Pantry and specifically the Documentation section, I was most drawn to the Developer repository, containing documentation that will be most relevant to developers working on the project – such as myself and my teammates. All of these contain valuable information about various components of the system/subsystems like the overall architecture, guidelines for Conventional Commits, and more. Furthermore, I have been interested in picking up Documentation writing as a skill and get some experience with it, so this is an area where I may be able to do so and assist Dr. Wurst in filling out the Developer Documentation. I’m looking forward to getting hands-on experience and making progress in improving the Thea’s Pantry systems this semester!

LibreFoodPantry site: https://librefoodpantry.org.

From the blog CS@Worcester – Tech. Worth Talking About by jelbirt and used with permission of the author. All other rights reserved by the author.

Familiarizing Myself With Thea’s Pantry and LibreFoodPantry

Thea’s Pantry helps provide food and other essentials to students, staff, and faculty in need. The pantry was established to help students who experience food insecurity, to allow them to focus on their studies and complete their education. In regards to researching more on Thea’s Pantry, it’s surprising how many different systems, components, and features are involved with the systems architecture. There are a few different systems including GuestInfoSystem, InventorySystem, ReportingSystem, IAMSystem, and EventSystem, that each have their own separate components and features that each complete their own specific tasks. I selected this for the reasoning that many individuals believe that these type of systems can be constructed and running easily and quickly. In actuality when creating these complicated systems involves lots of trial and error, testing, and lots of work to ensure every system and component is running efficiently, correctly, and used as intended.

LibreFoodPantry is a project that is being constructed primarily by instructors and their students. What is interesting about this is that not only Worcester State students are participating in this project. Students from Nassau Community College, Western New England University, and Worcester State University are all participating in this project. Anyone can work and contribute to this project, adding new features or improvements or addressing known issues within the system. A singular individual may not know how to address every problem or issue. Therefore having the capability to interact with other people working on the project and having others review work can be extremely beneficial and help anyone learn more than what they previously knew.

From the blog CS@Worcester – Conner Moniz Blog by connermoniz1 and used with permission of the author. All other rights reserved by the author.

CS@Worcester – Zack's CS Blog 2024-01-21 15:05:42

Exploring LibreFoodPantry and Thea’s Pantry

LibreFoodPantry is a community building free and open source software for food pantries. Thea’s Pantry is the food pantry provding food and other essentials to the Worcester State community,

LibreFoodPantry

When familiarizing with LibreFoodPanty, I found the Coordinating Committee page to be be the most interesting. This is because it shows the different universities that are working together to create software for food pantries. Those working with LibreFoodPantry are Nassau Community College, Western New England University, and Worcester State University. These three universities working together strengthens the Mission statement of LibreFoodPantry by being three smaller communities coming together to make one larger community who believes software can be used to help society.

Thea’s Pantry

While exploring the Thea’s Pantry Gitlab group, the architecture of the entire system is what I found to be most interesting. Thea’s Pantry uses a microservices architecture which involves breaking down the system into smaller subsystems. In the context of Thea’s Pantry, there are 5 total systems being used where two of them are from a third-party. Each subsystem is composed of features which uses components.

I found the architecture to be most interesting because we will be working on different parts of the system; therefore, understanding how the system is composed and how it functions would be helpful.

From the blog CS@Worcester – Zack's CS Blog by ztram1 and used with permission of the author. All other rights reserved by the author.

LibreFoodPantry and Thea’s Pantry

For my capstone class, I needed to familiarize myself with these before working on the project.

With regard to the LibreFoodPantry docs, I think the organization structure is fairly interesting. It’s a great idea to give students a direct opportunity to engage in FOSS development in the real world and actually take part in something. It’s good for experience regardless of where students decide to go with their education. Not to mention that this is an actual piece of software being used across multiple campuses for a good cause.

We’ve spent a fair amount of time with an older version of Thea’s Pantry for one of my previous courses, but I didn’t get to really look at the actual up to date repository. It’s interesting to see all of the individual systems that combine into a full Microservice structure. With regard to the documentation, I found it fairly admirable to have a piece on inclusivity in the Computer Science space. It really is important to allow people who are interested in the space to feel welcome instead of outcasted and feeling like they don’t belong, whether by intention or not. As the documentation says, these perspectives are definitely an important addition so that software can be even better, I recall statistics that show a more diverse team tends to make a higher quality product.

From the blog CS@Worcester – V's CompSCi Blog by V and used with permission of the author. All other rights reserved by the author.

Exploring LibreFoodPantry’s Inclusive Culture and Thea’s Pantry Efficient Operations

I find the Code of Conduct outlined by LibreFoodPantry particularly interesting. It establishes a commitment to maintaining a harassment-free and inclusive community for all members, emphasizing values such as empathy, kindness, and respect. The use of specific examples of acceptable and unacceptable behavior, along with a clear enforcement process, contributes to making a positive environment within the community. I chose to write about this because it reflects the project’s dedication to developing open-source software and to create a supportive and diverse community. The emphasis on social good and the proactive approach to ensuring a welcoming atmosphere align with the broader mission of using technology for society better.

Regarding Thea’s Pantry, the user stories caught my attention. Specifically, the process of handling guest visits, including the registration of new visitors and the streamlined checkout system, stood out. The attention to detail in managing inventory, tracking guest visits, and handling new donations showcases a well-designed system to efficiently serve the community. I chose to write about this aspect because it highlights the practical application of the software in a real-world context, demonstrating how technology can enhance the operations of a food pantry and contribute to a more organized and effective service for both staff and visitors.

From the blog CS@Worcester – Site Title by rkaranja1002 and used with permission of the author. All other rights reserved by the author.

CS448 Software Capstone Course Blog Post for week of January 16, 2024

I’m starting my (hopefully) last semester in Worcester State’s Computer Science program, and the focus of our capstone course will be contributing to the microservices supporting Thea’s Pantry at Worcester State University. Thea’s Pantry is using a guest frontend, reporting and inventory system built by the LibreFoodPantry humanitarian free open-source software community. LibreFoodPantry is managed by a coordinating committee and a board of trustees, and has adopted a Code of Conduct modeled after the Contributor Covenant. I hadn’t heard of the Contributor Covenant before reviewing the website for Thea’s Pantry. The Contributor Covenant provides a general set of community guidelines that foster a respectful and welcoming space for collaborative open-source software development. I have previously learned that a policy of enthusiastic inclusivity and openness is essential to an open-source project’s success, but I hadn’t realized that such a policy would consequently necessitate the creation of a robust code of conduct for the project’s contributors.

In the Software Design & Architecture course I took last semester, I learned about semantic versioning in software and how it’s used to keep track of a software’s present state even after many alterations to the source code. In order for Gitlab to correctly increment a commit’s semantic versioning number, contributors to Thea’s Pantry are expected to attach commit messages to their work that adhere to the Conventional Commits standard. The Conventional Commits standard requires developers to include a type of change such as “fix” or “feat” at the beginning of their commit message. “Fix” commits signal a patch, and will increment the rightmost semantic versioning number, while “Feat” commits signal a feature update that would be reflected by an increase in a middle semantic versioning number. If a breaking change will be introduced, that would be notated by either a “BREAKING CHANGE:” footer, or a “!” appended to the commit type.

From the blog CS@Worcester – Michael's Programming Blog by mikesprogrammingblog and used with permission of the author. All other rights reserved by the author.

CS484 Week-1

The Libre Food Pantry project and Thea’s Food Pantry at Worcester State University both represent impactful initiatives addressing food insecurity, each in their unique way.

1. The Libre Food Pantry Initiative: This initiative brilliantly merges technology and social welfare. By focusing on developing free and open-source software specifically for local food pantries, the Libre Food Pantry is a stellar example of how technology can be leveraged for social good. This initiative stands out for its innovative approach, where software development directly contributes to enhancing the efficiency and effectiveness of food pantries. Additionally, the project’s commitment to inclusivity, diversity, and a healthy community ethos, as reflected in its values and code of conduct, marks it as a progressive endeavor in both the tech and social service sectors.

2. Thea’s Food Pantry at Worcester State University: Named in honor of alumna and Holocaust survivor Thea Aschkenase, this campus-based service is a testament to community solidarity and support. It addresses the critical issue of student food insecurity, offering food and essentials to students, staff, and faculty in need. Operating from the Student Center, Thea’s Food Pantry provides confidential assistance, ensuring that members of the university community can focus on their academic and professional pursuits without the burden of food scarcity. The pantry’s operation, supported by student volunteers from various clubs and departments, including the SNAP practicum and the Urban Studies Club, is a wonderful example of campus community engagement and support.

Both initiatives, through their respective approaches, demonstrate the power of community-driven efforts in addressing fundamental human needs. The Libre Food Pantry’s focus on technology as a tool for social good, and Thea’s Food Pantry’s direct support to the university community, each highlight the importance of tailored solutions to societal challenges.

From the blog CS@Worcester – Kadriu's Blog by Arber Kadriu and used with permission of the author. All other rights reserved by the author.

Your First Language

The pattern I chose to explore is called “Your First Language” from Chapter 2, which focuses on the importance of choosing a primary programming language and developing proficiency in it. The pattern addresses a common concern for many aspiring software developers: the fear that job opportunities and success are contingent upon mastery of multiple programming languages. However, the pattern provides reassurance by emphasizing the significance of selecting a language and becoming fluent in it. This chosen language will serve as the foundation of your early career, and investing time and effort into mastering it will yield fruitful results.

I found this pattern particularly relevant to my own journey as a computer science student. Like many others, I have dabbled in multiple programming languages during my studies. However, this pattern reminded me of the importance of honing my skills in one specific language, rather than spreading myself too thin across various languages. By dedicating myself to one language, I can truly delve into its intricacies, best practices, and development tools, allowing me to become more proficient and confident in my abilities. For me, that language has been Python (and R to a certain extent). I found in my Senior year, that focusing on Python has allowed me to gain more proficiency and has helped me massively with data analysis and classification for my Data Capstone class as well as my summer fellowship project.

Furthermore, the pattern emphasizes the value of seeking guidance from experienced developers. Collaborating with a mentor who can offer insights, guidance, and occasional support can significantly accelerate your learning and help overcome obstacles. However, it’s essential to strike a balance between seeking assistance and independent problem-solving, as the latter fosters personal growth.

In conclusion, the “Your First Language” pattern serves as a valuable reminder that proficiency in one well-chosen programming language can lay the groundwork for a successful career. By dedicating ourselves to mastering that language, working on small projects, and seeking mentorship, we can enhance our understanding, confidence, and employability. I am excited to apply the lessons from this pattern to my own professional development, and I encourage fellow aspiring developers to do the same.

From the blog Zed's Blog by Lord Zed and used with permission of the author. All other rights reserved by the author.

Your First Language

The pattern I chose to explore is called “Your First Language” from Chapter 2, which focuses on the importance of choosing a primary programming language and developing proficiency in it. The pattern addresses a common concern for many aspiring software developers: the fear that job opportunities and success are contingent upon mastery of multiple programming languages. However, the pattern provides reassurance by emphasizing the significance of selecting a language and becoming fluent in it. This chosen language will serve as the foundation of your early career, and investing time and effort into mastering it will yield fruitful results.

I found this pattern particularly relevant to my own journey as a computer science student. Like many others, I have dabbled in multiple programming languages during my studies. However, this pattern reminded me of the importance of honing my skills in one specific language, rather than spreading myself too thin across various languages. By dedicating myself to one language, I can truly delve into its intricacies, best practices, and development tools, allowing me to become more proficient and confident in my abilities. For me, that language has been Python (and R to a certain extent). I found in my Senior year, that focusing on Python has allowed me to gain more proficiency and has helped me massively with data analysis and classification for my Data Capstone class as well as my summer fellowship project.

Furthermore, the pattern emphasizes the value of seeking guidance from experienced developers. Collaborating with a mentor who can offer insights, guidance, and occasional support can significantly accelerate your learning and help overcome obstacles. However, it’s essential to strike a balance between seeking assistance and independent problem-solving, as the latter fosters personal growth.

In conclusion, the “Your First Language” pattern serves as a valuable reminder that proficiency in one well-chosen programming language can lay the groundwork for a successful career. By dedicating ourselves to mastering that language, working on small projects, and seeking mentorship, we can enhance our understanding, confidence, and employability. I am excited to apply the lessons from this pattern to my own professional development, and I encourage fellow aspiring developers to do the same.

From the blog Zed's Blog by Lord Zed and used with permission of the author. All other rights reserved by the author.