Note to judges

The online version of the website uses the test environment for payments, so you can feel free to test ticket puchase without worrying about losing any money. (This testing environment does not support e-wallet payment)

In the demo video, I used the real payment environment and made an e-wallet payment, to show you the user flow for real transactions


Fitness Trainers, Teachers and a variety of small businesses have always depended on physical interaction to make a living. But since COVID-19 has happened, they are now pivoting to hosting classes and events on zoom to earn their income.

But organizing zoom events and charging money for them is hard. There is no in-built payment infrastructure and event management.

Eventmu is here to solve these issues!

What it does

Event organizers can input their event details and ticket prices in our system. We would then create an event webpage with built-in payments support. They can share these pages in their social media and dont have to worry about event management or payments

Given the significant number of unbanked population in Indonesia, we support payments using e-wallets such as OVO and Dana.

Event organizers can receive their sales revenue in real-time, topped up into their OVO e-wallet. Attendees can also purchase tickets using OVO, Dana, Bank Accounts or Credit Cards This payment infrastructure is possible thanks to the Xendit API (

How I built it

I built the front-end using ReactJS and component libraries such as React-Bootstrap and Rainbow-Components. The React website is hosted on Firebase's CDN to ensure quick access speeds

The backend is built using NodeJS and Express and is hosted on Firebase Cloud Functions. This allows the services to easily scale with minimal setup

All data is stored in the Firestore key-value storage system. This is quick to setup and plays well with Firebase Cloud functions, ensuring seamless integration

Challenges I ran into

I had the idea for this project around a month ago and struggled to find a suitable payment api, but after a lot of research I found xendit which was perfect. I knew that it would take some time to get approval to do real payments, so I applied for api access a few weeks before the hackathon. However, this was still a pretty tedious process, multiple documents to sign and many interactions with their very helpful support team. Thankfully, all my api access requests were approved in time for the hackathon

I also struggled with using Firebase Cloud functions. Uploading images to Firebase Cloud Storage is something i could not get working in this hack. It also took me a long time to figure out how to execute scheduled functions in the firebase environment.

Accomplishments that I'm proud of

I am particularly proud of successfully setting up the payments API it is live and able to perform real transactions. For now, I have setup the payments in development mode so judges can use the website without paying any money, but I demonstrate a real payment in the demo video

What I learned

I learned how to use so many new technologies such as Xendit API, Sendgrid API and Firebase Cloud Functions. I've also gotten more comfortable designing web layouts quickly despite having struggled with CSS for years now

What's next for Eventmu

I would like to test the payments system more thoroughly before launching. But I am excited to launch this product to the Indonesian market pretty soon, as I think a lot of businesses can benefit from it and earn much-needed income during this pandemic

Built With

Share this project: