As promised I'm going to give you a fairly brief introduction to my final project. This post is going to be structured in terms of motivation, background and the tech part of the project.
Food waste, these days, has become a huge factor when it comes to not only feeding the poor, but also an environmental issue itself.
According to the Food and Agriculture Organization of the United Nations (FAO), food waste is somewhere between 120 and 300kg per year and per capita:
Even though retails are wasting the majority of food all over the world, it is clear that in western civilizations, consumers themselves are throwing away too much food.
In order to address this issue I've come up with the idea to build a platform, in which people can give away their food (which would otherwise end up in the trash bin). Sometimes people just cook too much food and realize that they can't consume all of it, especially in single person households, sometimes people go on vacation ending up with a fridge full of good food or sometimes people are "rescuing" food from retailers.
Let me introduce to you my Project: Lueneshare!
Lueneshare is targeting everyone who is living in my beautiful town of Lüneburg. Chosing Lüneburg for this project has many reasons:
1. A wider range of people are somewhat sensitive to environmental issues, especially because 10% of the inhabitants are University students at Leuphana University, where the biggest faculty is the sustainability department.
2. I live there and want to make my hometown an even better place.
3. Since it is a fairly small town, the idea of the platform can spread fast.
The tech part of the project
For this project I'm using my oh so beloved MERN-Stack:
I'm using MongoDB for my database, where I'm storing all the users data, messages, categories and products that people are posting. Since the data structure itself and the queries aren't going to be too big, I don't need a relational database such as postgreSQL.
My backend choices most likely won't surprise anyone:
Node.js/Express is handling all the routes and setting up the needed access points for my API. Mongoose on the other hand is setting up the connection to the database and doing the queries for me. Since I need the users to upload photos of the products, I'm using Cloudinary's API (free plan) to host the files. Whenever a user is uploading an image it's going to upload it to Cloudinary and save the link of the image in my database.
For the frontend it was also quite obvious that I was going to choose React because for the next few years I'm going to push myself hard to become a great React Developer. I'm also using the Reactstrap library for the components. Another key package is Axios, which allows me to make API calls to my server.
So far, people can upload their food giveaway...
They can also filter all the "products" by category...
And they can log in, in order to post products or leave comments...
The last big part, which is most likely going to be mind-bending, will be implementing real-time messaging with Socket.io. But I'm pretty sure that after putting in some blood, sweat and tears it will work out perfectly!