Back to projects
Screenshot van FestCoin

FestCoin

A fullstack school project for a cashless event payment platform.

express.js EJS Tailwind SQLite Docker

About the project

This project was developed as part of my 'Web Programming' course, together with 1 other student. We built FestCoin, a fullstack web application that provides a complete cashless payment system for events, designed for both visitors and organizers. The goal of FestCoin is to allow users to purchase digital coins on a single platform and use them at events. Visitors can browse available events, join them when physically present, and get a live overview of all stands, items, and their locations. They can place orders in advance on their phone and simply present a QR code at the correct stand to receive their order. In addition to this core flow, visitors have access to several extra features: they can track their spending, receive budget alerts, earn rewards through a points system based on their purchases, view personal analytics, and send FestCoins to friends or family. This creates a more interactive and controlled spending experience during events. On the organizer side, we built a complete management system. Organizers can create and manage multiple events, define stands and items, and monitor live activity through a dashboard. They have access to detailed analytics for their own events (such as sales, performance per stand, and revenue), as well as a global analytics page available to all organizers. This global view provides broader insights like the most popular items, locations, and pricing trends across all events on the platform. Additionally, organizers can export detailed PDF reports, either per individual event or aggregated across all their events, which is useful for reporting and bookkeeping. Organizers (as admins) can also create and manage employee accounts with restricted permissions. These employee accounts are used on-site to scan QR codes and handle orders, while also having access to personalized analytics, such as how much they have sold, how each assigned stand is performing, and where they are located during the event. The project was built using Express.js, EJS, Tailwind CSS, and SQLite. The system is fully functional and runs reliably in a dockerized environment for easy local setup and deployment. A video demo of the platform will be available soon to showcase the full user experience and feature set.