What is it?
Awingo is a lightweight event management platform that allows hosts to manage their events by listing events, selling tickets, scanning tickets, messaging attendees and all the pieces in between. A unique concept with Awingo is that when you carry out core actions on an event such as buying a ticket or checking in via location you earn "XP" (experience points). You build up those points at a platform level and with particular "hosts" (event organisers) and hosts can set rewards when a certain amount of points have been earned at their events. Think Tesco clubcard... only for events.
How much can you cram into a web app?
- Real-time page updates
- Transactional email sending
- Custom payments integration
- SSR for better SEO
- API integrations
- Web based ticket scanner
- Tested with Cypress
- Vuex state management
I've been tinkering with this on the side for a while now and I mainly use it as a base to try new things and have a longer sighted goal that it could start generating a little bit of money on the side.
What's the tech?
It's Server Side Rendered Vue app on the frontend using Nuxt which consumes a Laravel powered API. Realtime updates and communication happen via Pusher. Payments are managed via a custom Connect integration with Stripe. Transactional emails are sent via MailGun.
The Laravel backend essentially acts as an API for the frontend Vue app and I'm primarily a frontend developer and one that is more focused on delivering a good experience for the user. Laravel enables me to do just that. The documentation and learning resources for Laravel are some of the best framework and language documentation I have seen to date. I fully recognise the fact a lot of developers turn their noses up at the fact it's a PHP framework but as someone who likes to get stuff done Laravel is the right choice for me and this project.
The services and packages that have been built up around the Laravel ecosystem are phenomenal to say the least. For example Vapor to easily deploy a serverless Laravel app or Forge for a more traditional setup. Envoyer for zero downtime deployment. Horizon for Redis configuration and queue management. The list goes on. On Awingo I take full advantage of these services and packages.
Over the time that I have been tinkering with this I have touched a lot of the core framework features and it's been an absolute pleasure to work with. Using the framework has enabled me to carry out a lot of complex logic associated with a custom built platform like Awingo relatively easily.