- Project Lead: Santiago Arellano
- Start Date: 25th of July 2024
- Technologies: Java EE, JPA, Spring & Springboot, Basic SQL Databases, Web APIs, HTML, CSS, Javascript
About this ProjectThis is a brainchild of a need for having intelligent information and useful calculations displayed orderly inside a web app allowing farmers to both engage further in learning about their crops, and to manage numerically and mathematically certain aspects of the farm like yield calculations, etc.
This project involves many technologies which will be a first for the entire company, Web APIs, Spring, and Java EE, Web design, among others that will exercise both our ability to present both compelling and clear solutions, while also allowing us to gain experience and knowledge about the various technologies, frameworks, and systems.
About MeAs a developer, I have very demanding requirements when it comes to my projects and the topics that I learn and put in practice, in them. Moreover I tend to focus intensely on backend development, desktop development, or enterprise level Java. My interest lie closely with backend technologies, as well as, different frameworks and technologies developed for the Java ecosystem, a language I like.
On the other hand, one of my passions outside the world of programming is agriculture. I enjoy knowing about it and practicing what little I can about it at home and in the fields. For this reason, I decided to tackle a project that would boost both my knowledge about computer science and agriculture. By developing this application I hope to learn more about Java EE, specifically Springboot and Spring Web to understand the creation and maintenance behind web APIs.
This project is more than just a learning path, it is something I value and actually want to put effort in. Furthermore, if I do this right it might help as a basis for my career in agricultural tech development.
How Will This Project Be Structured?A key value that I want to emphasize throughout this project will be program slicing and compartmentalization. After having developed an entire project (CMP 2103 Rol de Pagos) using this model of abstraction and distribution both of time and code responsibilities, and the application of programming principles like single responsibility design patterns I found that my code became easier to expand, allowing for modifications in certain parts to not damage the rest of the system. Moreover,this compartmentalization allowed me to keep the program alive without having all the requirements fulfilled, and also to make sure that dependencies where addressed through interfaces.
With this information in mind, and the recent courses I have followed, such as Data Oriented Programming and Functional Programming, I believe this time I am even more capable of presenting a well-thought-out solution, and clean code.
This lead me to the question of structure. Due to the way Spring works and the way APIs have to adhere to strict requirements for their communication, interaction, and data exchange with other systems, I will have to abide by most of the rules already defined in the world of Microservice architectures. Since this is a test project and most important, a playground of sorts, I will experiment with different architectures, software development paradigms and personal rules to make the code feel more like a challenge rather than an obligation.
My Documentation StyleAs part of the techniques I use to keep myself invested in the code and projects that I write, I often keep written notes inside the code. For example, I might use comments or large block comments to note any interesting detail I found during the writing of a certain piece of code. Moreover, I will sometimes provide Markdown documents entirely focused on the thought process behind some important decisions done in the code, accompanying sets of documentation and notes to the program requirements will be set.