Online Casino

Technologies used:

React NodeJS MySQL Typescript

Design

I always loved casino games like poker, slots or roulette, so I had the idea to create a casino web application.
I chose React because I liked the development experience in my previous projects, also I needed a framework suitable for the interactivity of the site.
The first step was creating a simple mockup in Figma. The design and colors were inspired by the famous Diamond Casino in GTA Online, although I wanted to give it a few changes and a new name.

Team

My main role was creating a design and frontend functionality for the site and helping my friend Levente in the backend development work, since this was his first experience with web development and Javascript / Typescript.

Casino User Interface

The cookie system

Instead of adding a full user registration and login system, we chose to use a simple session based authentication with cookies. It provides a faster and easier user experience without any hassle. There was just one issue: the default MemoryStore has a memory-leak issue, so we needed a new solution. Express-mysql-session was the ideal choice for us, which has been implemented.

Deploy

When we started the project, we wanted to keep the frontend and backend separated, since it would provide a modular codebase with a cleaner development proccess. The frontend was hosted on Vercel, and we used Render for the backend. For the database, AWS RDS has been our choice.
Later on we found out this solution is not the best idea, since CORS decreases the website performance and adds more unnecessary complexity. For example, Safari blocks all third-party cookies and Storage Access API would have been needed just to enable the cookie setting.

Conclusion

At first I thought this would be a pretty easy and fast project to finish, but this vision has disappeared quickly when we started implementing the cookie system. In my opinion our biggest mistake was the lack of in-depth planning when we started the work, which has increased the development time.

In overall, we learned a lot from this project and I loved every second of it, we are polishing the features and experience even to this day.