Discotheque experience

Daniel Celis Tobon
5 min readMar 26, 2020

Discotheque is a web application, its main purpose is to bring people closer to the nightlife places they could go to, taking into account their tastes, since people are as unique as the various places that exist. At the same time Discotheque gives more visibility to the clubs, since in such big cities it is difficult to acquire popularity.

The role I had in the development of the project was full stack, since I did the total development of the app in both front and back end. I was motivated to have this challenge alone because I wanted to improve my ability to face technical challenges in both areas especially in the back end, since I always performed in the front end.

The project was created for anyone over 18, who likes to enjoy the nightlife of the city, in any of the various places, for example: discos, fondas, bars, pubs, restaurants with live music. The only requirement is to want to break routines, socialize and have fun with friends, as our tagline says keep us always young and have fun, that is the most important thing.

The personal focus was to be able to have all this information at our fingertips, creating an app that could be accessed both from the web and from mobile devices.

Why did I choose to work on this project?

Every end of the month my friends and I get together to celebrate the birthdays that have taken place during that month. One of the biggest problems was to decide among all of us, the place where we wanted to go, that it had the kind of music that we all liked, the price that would suit everyone, that we liked the atmosphere, the location, etc. We always had some options present of places we had already gone to or places we wanted to visit, but in the end we always ended up going to the same place as always, since it had everything that most of us liked and we always had a good time, but there came a point where we said “This place is getting boring now, we should go see more places.”

From this problem came the idea of my app, since through it we can make personalized searches that will help us find the ideal places that meet the characteristics we like, we can read reviews and know what people who have visited these places think, we can see the events that take place in each place, we can make reservations and avoid lines to enter each place. All this from a single app, being at our fingertips.

For the front end, I chose to use HTML5, CSS3 and the Muuri library, which is in charge of running the search engine and the categories, she uses the data attributes to make the filters using a script. For the back end, I used the Express framework, Nodemon for the development, Passport for the login validation process, Bcrypt to encrypt the passwords before they are saved, MySQL for the database. For front and back end integration use the Handlebars template engine.

Features

The search engine allows the client to search for places using keywords, for example: place name, location, musical genres, and rooms. The categories filter places by groups, for example: disco, fonda, bar.

Discotickets. Make reservations for the different events and buy tickets so you can enter without lines.

Increase your club’s visibility and popularity. Add events and key information so that the filters reach more people.

The website is responsive and compatible with mobile. This means users can access the project from a mobile view!

Technical challenge

Initially when the idea of the application came up I got excited and started creating features that I could have. I did the static design of all these functions and everything looked great. Then I started with the development of the back end app, I made the script to be able to make filters in the search engine and in the categories, the users authentication and the encryption of the passwords to be saved in the database in a safe way, allowing to block routes to which you cannot enter when you are logged in (the sign in or the sign up) or when you are not logged in (forms to create a new club, to create an event, the user profile), the CRUD (create, read, update, delete) for users, places and events. When I started to do the function for the reservations I found several problems and the solution for the presentation of the MVP was to make reservations initially only in the events generating tickets, but later you can make reservations for any date without caring if there is an event or not. Four functions that I could not develop for the MVP delivery were: the function of the reviews for each place, the function of the most popular clubs, the option to follow the clubs and have notifications of new events and finally the function to create the playlist.

What you’ve learned?

Thanks to this project I was able to learn new programming languages, frameworks, libraries and template engines. I was able to face the reality that engineers live day by day having to be researching and applying the knowledge acquired to give solutions to the projects they are developing. I was able to improve my self-learning skills. As a lesson for the future I have to improve the organization and planning for the development of projects, establishing deadlines according to the complexity of the tasks, having spaces to study how to perform each function and see the viability of these. Before the realization of this project I was closed to make all projects through virtual machines and text editors as vim, for the development of this project I decided to use other tools such as visual studio code, which gave me many advantages and a better work having everything integrated.

About me

I’m Daniel, a software developer and interior designer, passionate about art, photography and sunsets. You can contact me on LinkedIn.

--

--