Confidently Incorrect - Furniture Re-Sale Site

Bradley Hill - Feb 27 - - Dev Community

Confidently Incorrect since 1987

COPAMEBA and managing an online store

So with this project our objective was to create a site allowing an (imaginary) client to manage her stock of second-hand furniture for re-sale online and allow members to reserve/purchase pieces, and allow the client/admin to add and remove articles.

The organisation of the team for this project was to be in larger groups than before, where we were in groups of four or three before, this project was to be completed as a group of 8, with us being divided into two subteams, one front-end and one back-end. With two weeks to complete the project, we would work for a week and then switch the teams, so the front-end would take over and complete the back-end and vice versa.

The immediate thoughts with regard to this organisation were the importance that the documentation would have when the time to switch would have, and the increased need to usefully comment our code for when the other team took over.

The only constraints on our choice of tech stack was the use of Bootstrap for our CSS, so after a discussion within the group we decided to use React for the front-end with Bootstrap, due to our shared familiarity with it, and for the back-end we would use Node.js and Express, again, sticking to the JavaScript we were most familiar with, and using SQLite for our database, due to its relative ease of install and simplicity to integrate with VSCode.

The landing page for the site displaying the selection of furniture available

Building on our previous experience building and using API's we planned our endpoints for the front-end to be able to display the furniture available by category, an individual item and everything currently available.

The detail page for a single item of furniture

One of the new challenges with this project (beyond the organisation and synchronisation between teams) was to manage a user authentication system, where users could be created, and we had a column on the users table that would allow us to define if the user had admin privileges, thus allowing us to limit access to the administrators control panel to the designated administrator/s.

Example entry of a User in our SQLite table with administrator rights assigned

The project proved to be challenging, the communication and organisation proving to be the greatest difficulty, although it was well mastered towards the end of the fortnight, with the work we had previously done being nicely and smoothly woven together into the working site.

Our repository is linked here with a rather good readme, thanks to my teammates!

It was particularly satisfying working across the teams to unify our separate sides and seeing how the separate code integrated and became a functional whole. The more I use databases the more I become curious as to the myriad different approaches to organising and storing the data needed, it's a fascinating if expansive area of programming, and I look forward to learning more and more as I gain more practical experience using and building my databases.

Next week's project will be creating a microblogging site returning to PHP this time using Laravel to make our lives a bit easier (?), at least compared to our first brush with PHP vanilla.

Until next time, be safe and stay happy!

. . . . . . . . . .