Atelier des Môles
why this project?
This was a Group Project during my Degree.
The client is a small concert venue that had a loyalty program with paper card and wanted a web app to digitalized this loyalty program and to keep a database of their clients.
They also needed a private access for Medias so they can ask for accreditation for each future concert.
I was the Lead Dev in a team of 4 persons, we were all junior dev in training.
We based our design on their main website. They asked us to use the same colors, typo and style as their website. We worked on both Desktop and Mobile version, the design is a bit different for each even tho the information are of course the same.
We used WordPress as our client already knew this tool, their main website is also made with WordPress.
We created a custom theme from scratch to personnalize everything.
The main contents to display for this web app are Concerts, for this we have a Custom Post Type and we have several loops to display it in a different pages. For each concert there is a link to buy a ticket via Weezevent so we just used Weezevent widget to display it.
The first role of this web app was to optimized the Loyalty Program, basically everytime a subscriber goes to 3 concerts (he has to assist the concert for it be count), he gets a free ticket for his next concert.
Get participants' names
So we had to find a way to track the participations. For this we used Weezevent API mixed with our own code. Indeed most of people buy their ticket with Weezevent, so we had to connect to the API, extract the names of people went to a specific concert and use this information. But some people also bought paper ticket in different counters, and those were not in Weezevent data but needed to be collected so the participation could be used in our count. For this we created a form that allow the Administrator to add a person in the list of Participant, then we merge this list to the one from Weezevent.
It took us several tries to make it work but it did at the end, we created a script that collect the names and emails of people that did validate their tickets at the venue automaticaly 4 hours after the time of the concert.
Count the participations
Now that we had all the participants' names and emails, we needed to create a counting system that generate a "+1" everytime a subscriber went to a concert. We also had to create a filter to avoid duplicates, indeed some people can buy more than 1 ticket for a concert if they go with friends for example, but since it's for the same concert, even if the email was used several times, it had to generate only one "+1", this was the first tricky part.
Once this was made, we created a field on profile account to count, and our script will automaticaly add 1 to this field when the concert is over and if the person assist to the concert. Since our cycle was 3 participations get 1 ticket, we also had to trigger the fact that when they have 3 in their account, they will see a special button allowing them to ask for their free ticket if the concert they selected was part of the program.
And once they participate to their Free Concert, the counter will reset to 0 and a new cycle will start.
We also wanted a page where the subscriber could see all the concert they attended in the past, so we also triggered a script that collect the concert ID and add it in the subscriber profile, then we used it to display it in their profile.
Media and Accreditation
One of the request was to have another account type for Media and Press so they can ask for accreditations directly on the app.
We created a special role so we could have a specific display for them, they cannot buy any ticket, when they open a concert, they only see a "Request Accreditation" button then, they can choose either Photograph, Writter or both, only one accreditation can be made by concert for a single Media.
This project was a real challenge as we started it at the beginning of our training when we didn't know much. But we were really proud to complete this project on time, everything worked as wanted at the end. We used some plugins for Account Registration because we didn't know how to do it ourself at first, if we had to do it again today, we would use less plugin for sure, and we would probably change few things to make it even more efficient, but the web app works and our client were very happy when we presented them.