Gourm'Eat

Gourm'Eat logo

Gourm’Eat is a catering business company located in France. Just before their grand opening, they needed a website to enhance their brand awareness but also to offer multiple features to their customers:

  1. A way to see which products they made, their price and their availability;
  2. A way to check what is the menu of the day and what are the menu of the following days;
  3. The catering services they can provide;
  4. A way to order from the website and handle delivery and click&collect;
  5. A way to check if any seasonal menu is available (Christmas, Valentine Day, etc.);
  6. A way to be contacted for customer support or business opportunities;
  7. A dedicated professional version of the website for B2B opportunities.

The business also required to be able to administrate their products and menus (day to day, seasonal), have a dashboard about the waiting orders and orders of the day.

The website is very similar to an e-commerce, with some very specific needs (day to day menus, seasonal menus, B2B vs B2C services, etc.).

Because of its blazing fast performance and very low overhead compared to (famous?) alternatives, the frontend was fully made using SolidJS. I used the latest version of Boostrap (and its Icons) to help me design the frontend. When it comes to frontend, my philosophy is to use as little dependencies as possible in order to have a fast website, especially on mobile devices (which turns out to be driving most of the source traffic to the website).

Here are the current dependencies of the project (part of package.json):

{
  "dependencies": {
    "@popperjs/core": "^2.11.6",
    "@solidjs/router": "^0.8.0",
    "bootstrap": "^5.2.1",
    "leaflet": "^1.9.2",
    "snarkdown": "^2.0.0",
    "solid-js": "^1.7.0"
  }
}
  • @popperjs/core is required by boostrap for some of its features (modal, toasts, etc.);
  • @solidjs/router is used to do the routing, clientside;
  • bootstrap;
  • leaflet is used to display maps;
  • snarkdown is a tiny lib to display markdown content;
  • solid-js.

The JS bundles made using Vite are pretty good (ie. small in size), but some optimizations still need to be made (especially the loading of leaflet on the landing page).

On the backend side, I decided to use Django because I am proficient with Python and this framework but also because I know it would be made me achieve what was a required on a timely manner. The backend handle most of the features you would expected from an e-commerce:

  • user account lifecycle (creation, update, etc.);
  • cart management;
  • order management;
  • payment mangement (using Stripe and its webhooks);
  • invoice management;
  • mailing for each step of the order lifecycle;
  • administrative features like product management, menu (day to day, seasonal) management, etc. built using Django admin.

Django is configured to use a PostgreSQL database, which is my go-to database.

In order to optimize images’ serving, I built a little service that takes care of dynamically resize it depending of the client device screen size.

The website has been in production since November, 2022 and updated multiple times now (for basic maintenance and for the addition of new features). As Gourm’Eat is growing, some enhancements will be added in the near future.

© Copyright 2023 by Sorriaux Software.
Built with ♥ using Astro & SolidJS.