The deployed application can be found here: https://shopping-kumpel.herokuapp.com/
You can also clone the repo to run the app with a local database. Please install all the dependencies and use the following to run the application:
npm run dev
The idea for the app was that there are a lot of shopping list apps already but usually they do not allow you to collaborate with your friends. Hence, Shopping Kumpel was created to allow you to work on a shopping list with friends in real time. All logged in users will immediately see all the actions other users perform.
The app allows you to:
- create lists and items
- cross items off the list by clicking on them
- editing items by clicking the pen icon
- deleting items by clicking the x icon
- adding collaborators
Collaborating users will always see the updated lists on their devices. Hence, multiple people can collect items from the supermarket without the risk of buying the same thing twice.
The app was built with React Hooks and the Context API in the Frontend and Node / Express in the Backend. This allowed for only JavaScript being used in both Front- and Backend.
Sequelize is being used to communicate with the Postgres Database. The ORM translates JavaScript into SQL.
In order to make the application real-time socket.io has been used which is a library to implement web sockets.
Create-react-app was used to create the initial setup of the frontend part.
Part of the code was generated by Sequelize and create-react-app.
Further automated tests are still to be implemented. However, a small test suite has already been put in place using Jasmine. Use npm test
to run the tests. It is intended to use Jest and Enzyme to implement React component testing in the future.
Please refer to the todos.md file.
This app is not yet optimized for mobile use. Furthermore, it is also only thoroughly being tested with Chrome.