Inspiration

We were not pleased with existing ticketing solutions so we have decided to make our own app. Most ticketing platforms do not have real-time analytics which is very useful for big events to help organizers dynamically assign tasks to people responsible of letting attendants in.

What it does

It can currently allow users to create tickets for their events and then print them from the app. Each ticket created hai it's unique qr code which can be scanned while being logged in to validate the ticket. If someone comes with a counterfeited or duplicated ticket the app will reject it.

How I built it

The tickets are generated with a unique identifier and each object has fields that cat tell you if a ticket is sold in order to avoid printing it, or if it was already validated. The uid is then put in a url at a specific route with parameters and everything is encoded in the qr of the ticket. When scanned, it loads a view and searches for the ticket in the database. If it exists then it becomes checked and the qr is afterwards useless. We started from a boilerplate project and used as many packages as needed.

Challenges I ran into

Although meteor packages are 90% of the cases useful some of them are either not well documented or even making the app crash. We wanted to generate a pdf from html client-side to avoid having to do it from the browser when someone wanted to send a ticket online. We later found out how to do it, server-side unfortunately, but decided to drop this feature for now so we could carry on with the rest of the app. Another challange was to think clearly since both of us couldn't get much sleep this week.

Accomplishments that I'm proud of

We are very pleased that we have a working prototype even though we didn't implement all the features we wished to in one night.

What I learned

Both of us have a better understanding of how to start a project that won't become a mess while more code is written.

What's next for AweSoft Tickets

We will continue to develop the app in our free time and implement everything we want.

Packages used

accounts-password 1.1.1* Password support for accounts accounts-ui 1.1.5* Simple templates to add login widg... alanning:roles 1.2.13* Role-based authorization aldeed:autoform 5.5.0* Easily create forms with automatic... aldeed:collection2 2.5.0 Automatic validation of insert and... anti:fake 0.4.1 Random text and data generator china:sweetalert 0.3.2 Sweet Alert without Google web fonts. cmather:handlebars-server 0.2.0* Allows handlebars templates to be ... cunneen:mailgun 0.9.1 Easily send emails using Mailgun a... dburles:collection-helpers 1.0.3 Transform your collections with he... dburles:factory 0.3.10 Factories for Meteor iron:router 1.0.9* Routing specifically designed for ... khrone:img-qrcode 0.1.1 Provides template to generate QR c... less 1.0.14* The dynamic stylesheet language maazalik:highcharts 0.4.0 HighCharts for Meteor, with an eas... matb33:collection-hooks 0.8.0* Extends Mongo.Collection with befo... meteor-platform 1.2.2* Include a standard set of Meteor p... momentjs:moment 2.10.6 Moment.js (official): parse, vali... ongoworks:pdf 1.1.1 Generate PDFs on the client from M... reywood:publish-composite 1.4.2 Publish a set of related documents... richsilv:pikaday 1.0.1 Pikaday JavaScript Datepicker for ... underscorestring:underscore.string 3.2.1* underscore.string (official): Stri... useraccounts:bootstrap 1.12.3* Accounts Templates styled for Twi... useraccounts:iron-routing 1.12.3* UserAccounts package providing ro... yasinuslu:blaze-meta 0.3.1* Blaze-meta makes it super simple t... zimme:iron-router-active 1.0.4* Active route/path template helpers...

Built With

Share this project:
×

Updates