Skip to content

Project Proposal

Hamza Basrai edited this page Sep 22, 2020 · 1 revision

Outline

The focus of our project is to create an application for managing the shipping and receiving of machined parts at DieForm. Based in Mississauga, Dieform is a company that specializes in engineering solutions surrounding metalworking, automotive production machining and welding fixturing. The company’s clients include Tesla, BMW, Toyota, Ford and GM. Hundreds of parts are moved through the shop daily, all of which need to be tracked throughout the machining process. For our capstone we will be working very closely with DieForm to create a solution for managing the shipping and receiving of these parts.

Team Members & Roles

Hamza Basrai

  • Project Manager
  • Frontend engineer

Amar Jasarbasic

  • Backend engineer
  • DevOps Manager

Objectives

The following are objectives we want to complete for our capstone:

  • Automatic inventory logging
  • Generating packing slips
  • Automatic creation of work orders
  • Visualization of work order progress (how many parts completed)

Expected/Anticipated Architecture

  • Frontend: We will be using React for the frontend of our LogBook web app.
  • Backend: We will use Netlify for hosting our web app. We will be running a PostgreSQL server on GCP to store all data related to parts and orders. Our web app will make calls to our PostgreSQL server using a REST API that is hosted on Heroku.

Anticipated Risks (engineering challenges, etc.)

React is a new framework for both myself and Hamza, although we are both experienced Angular developers, switching to a new framework may come with some unintended consequences. We have taken many steps to ensure that we hit the ground running when we start implementing the project. We spent our entire winter break learning React from the ground up and consulting friends who are React developers about best practices to follow when working with the framework.

Furthermore, another challenge that we might face is handing off the project over to DieForm after our capstone term is complete. For every design/infrastructure decision we’ve made so far, we look at how it will impact the handover process once we are done. For example: when making a Google Cloud Platform (GCP) account we asked DieForm to create an email for us in their G-Suite account. This way, we won’t have to transfer over the PostgreSQL server from one account to another when we ultimately hand off the project.

Legal and Social Issues

Security is our number one priority for this web app. The data that flows through the system we are building is integral to DieForm’s business. If the data is leaked in any way, DieForm’s competitors can benefit from knowing exactly which parts and how much inventory is manufactured at DieForm. If we, as developers, are not mindful of the security vulnerabilities of our system and take active steps to patch them, we can jeopardize DieForm’s entire business.

Development Tooling and Releases

We plan to develop this project using agile techniques such as sprint-based workflows, continuous integration/deployment and documentation through user stories. Using phased releases, we plan to deliver key features in each phase of the development of the application. This allows us to focus our scope each sprint and helps uncover missing requirements that may not have been previously considered. To facilitate our CI/CD we will be using GitHub Actions which allows us to make triggers for automatic building and testing when a pull request is opened.