Skip to main content

NTNU plant manager

This project was created to keep track on watering, fertilizing and placment of plants at NTNU Gjøvik.

Tech stack

  • React.js
  • Netlify
  • Formik
  • Yup
  • Redux
  • Bcrypt
  • Mongodb
  • Mongoose
  • Passport
  • Passport JWT
  • Swagger

Background

At NTNU's locations at Mustad, they have many plants to keep track of. Who watered, when were they last watered, and the locations? The design department needs an administrative tool to monitor the condition and health of the plants. This project makes both the backend API and the frontend. The project is a group work where we were three people working on the same project.

Technologies

This project is built on the MERN stack. This is to say that we use MongoDB for the database, Express to build the backend, React.js to build the frontend, and Node.js which is a platform to create JavaScript applications.

To be able to authenticate, we have used Passport with Json Web Tokens to verify whether the user is logged in or not. The data is stored in a database at MongoDB. All passwords are encrypted with bcrypt before being stored.

Improvements

If I had to do this project over again, I should have made a more secure login system. It should have gone over HTTP secure and have refresh tokens instead of just using the same one for as long as the user is logged in as it works today.

The project is built in React.js, but for easier routing and better SEO, I would have used Next.js next time. It makes it possible to scale more easily and uses a mix of Static Side Generated and Server Page Rendered for the fastest possible rendering of the page.