Great lessons from small works
Experience is the teacher of all things - Julius Caesar
It was started 2 years ago as a volunteering project. A voluntary team, under the supervision of Dr. Isuru, led by Nuwan Jaliyagoda, got together to build a smart inventory management system for the newly proposed Maker Space Laboratory. By then, our team was in 2nd year and still needed to learn about project management. Nuwan is a great mentor and a guide. He helped us understand the fundamentals of planning, designing, developing, maintaining, and reviewing a project.
At the beginning of our 3rd year, all CO students were supposed to come up with new project ideas to do as the 3YP project. That one was supposed to consist of software, networking, and hardware components. Then Isuru sir suggested to us why we don’t convert the voluntary project already in action and integrate reasonable hardware functionalities. It was a good idea to proceed because it can be implemented for the student’s use.
That’s the pre-story about our project. Let me discuss our Plan, Design, development, review process, and the problems we faced.
Plan
The entire project is too big to cover within the 3YP scope and duration. So we narrowed down the content to “The component packages, placing orders and picking up mechanism”.
Our system at the end should have a web application for regular and administrative users, A console application to navigate to the package picking up system, and a pickup locker. Divide and conquer
- we broke the project into two software and hardware & firmware. We did the software design and development first. Then integrated it with the hardware design at the end.
Design
In both software and hardware development, Design and verification are essential. As our project had a variety of tech-stack, we deligated the jobs among ourselves. I work on developing the console application, Thanujan has to work on the backend and API development, and Thilini has to design the UI for the web application. We regularly had meetings and reviewed each other’s work and fixed the problems one couldn’t resolve on their own. When designing hardware, it is expensive to go for trial and error. As engineers, we have to mathematically analyze, test for risks, and then go for the physical implementation. For that, we used several online simulation tools and CAD design tools.
Development
We had a collaborative project development process using GitHub. I messed up 😬 my console application development after an evaluation milestone. We regularly pushed to the forked GitHub repositories and then made pull requests to be reviewed and merged with the main repo branch. This working process gave us a well-mannered coding practice.
Never ‘too early’ to start. Anything can happen at any time - Avery Neumark
When we started hardware development, honestly, it was too late. We spent more time planning and designing the hardware. When getting into the actual development of the hardware prototype, we faced many practical problems. To address the issues adequately, I suggest you always be the early bird to avoid last-minute failure.
Conclusion
Even though, as a team during the covid outbreak, we went through hardships to complete the project healthily, It was a great experience; we learned how and how not to handle a team remotely. Personally, I learned to be too careful about source control of a code through experience, and now I follow the learnings from the past.
Visit our project website to learn more technical details about our Maker Mate project.