Inspiration

Being a big fan of Ask.fm, I know how interesting conversations can be when they are anonymous (or at least one side's anonymous). One issue that I faced with Ask.fm was that I couldn't ask follow up questions. Another issue was that things were too public so I thought I couldn't be honest enough with someone. Don't get me wrong, I know Ask.fm is a Q/A app but back home my friends and I mostly used it for confessions. So I thought of learning from those few things and creating something of my own. That's what I call Confessions. (Honest confession by the way - I don't claim to have magically stumbled upon this idea; it was a carefully thought out process).

What it does

It lets you start a conversation with anyone (someone who has a Confessions ID of course) by going to their profile and making a confession (or just writing a private anonymous message). It automatically shows up on the person's home page (Confessions home page) when they log in. You can also follow up on those confessions and basically have a conversation going with the person you either confessed to or received a confession from. It could be your friend, relative or family member, doesn't matter. The interesting thing is that even during these conversations, the person who confessed remains anonymous unless he/she gives off his/her identity.

How I built it

I built the back end using SailsJS (with its Waterline ORM) on a MongoDB database. I made these choices because I personally love JavaScript but I haven't worked much with NodeJS on any large scale project, so I thought I might as well try. Another reason is that I want to make the solution realtime by incorporation Sockets (couldn't do that yet for the time shortage) and enhance the user experience. On the front end I used AngularJS to build a completely independent front end (i.e. the front end is NOT served by the back end; rather it communicates with the back end using a RESTful JSON API). For authentication I used PassportJS and a bunch of other tools to make the back end a stand-alone OAuth 2.0 server, so all requests are properly authorized before they are served.

Challenges I ran into

Time was a big issue. I couldn't complete the realtime features that I REALLY wanted to. Given it's my first time building a whole app (both back and front end) using AngularJS and SailsJS, it was slightly expected but I wanted to prove myself wrong. Regardless, I loved the overall experience. Also, it was a bit difficult finding useful resources for SailsJS because the community isn't as active (and old) as other platforms I have worked with.

Accomplishments that I'm proud of

I finished my app!!! I have a working prototype of my idea that basically does all of what I intended to build but just not as well as I'd want. Regardless, I think I can showcase my idea using a working product and for me that's a big achievement. I participated alone and coded for 21 hours straight (I kept a log of my commits and made sure I have them on bitbucket so I can look back at them and remind myself of this hackathon in the future), which was a great experience by itself.

What I learned

SailsJS, SailsJS, SailsJS and Waterline... And of course to communicate with others!

What's next for Confessions

I want to start my own startup with this app. I believe in the idea, so maybe I'll launch it publicly once I can incorporate all that I want for the app. You might see it coming out soon! ;)

Share this project:

Updates