Skip to content
This repository has been archived by the owner on Jun 22, 2020. It is now read-only.

A messenger extension that simplifies the way friends host secret santa parties

License

Notifications You must be signed in to change notification settings

callmekungfu/secret-santa-for-facebook-messenger

Repository files navigation

Secret Santa For Friends (In development)

A chatbot extension for Facebook Messenger Platform.

The Backstory

As holiday season approaches, me and my friends are getting together to celebrate Christmas, one of our traditions is Secret Santa gift exchanges. However, as people are getting busier and busier due to school and work; it is more and more challenging to gather everyone together to draw from a hat. This is not even half of the pain drawing from a hat presents to us.

So this year, we decided to look into alternative methods - online secret santa list generators, but looking through them I found a common problem: they all require email of the participants. We are sassy teenagers, who the heck still uses emails? Then I realized, wait a minute, we are all in a group chat, why not build a bot for our groupchat to streamline the way we celebrate this annual occasion! 🎅🎅

Technologies

Here is a list of technologies I used to accomplish this project (Rank by whatever order I can think of.)

  • Express.js (Node.js)
  • EJS
  • MongoDB, interfaced with Mongoose
  • Facebook Messenger Extensions SDK
  • Facebook Webhook
  • Heroku
  • Moment.js
  • dotenv, request, body-parser
  • HTML, CSS, jQuery
  • VS Code, Github
  • WeUI
  • Json Web Tokens

Limitation (Important)

All users joining the party must have facebook chat enabled. Otherwise they will not recieve any system notifications.

Roadmap

Initial Release 1.0

  • Party creation and invitation features
  • Name distribution, reminders
  • Database storage
  • Deploy to Heroku
  • I just want something that works c:

Version 1.5 Public Release

  • API tokenization
  • Profiles
  • Help and more informations
  • Wishlists!
  • No bugss!

Version 2.0

  • Shift to a more modern frontend framework
  • Party Announcements! (No clue why this is necessary)
  • Gift recommendation based on wishlists!

Version 2.5

  • Customized Party rules (gift exchange, etc.)

Special Thanks

Special thanks to my friends for inspiring me, this one is for you guys:

  • Ivy Ma
  • Anthony Lai
  • Andrew Prathepan
  • Daniel Wu
  • Shannon Guo

Another shoutout to these two articles that helped me navigate the initial setup process for this extension: How To Create Your Very Own Facebook Messenger Bot with Dialogflow and Node.js In Just One Day and https://blog.messengerdevelopers.com/using-the-webview-to-create-richer-bot-to-user-interactions-ed8a789523c6

WHY NO REACT?

The project is too simple to need react, I had a pretty intense timeline, so I wanted a fast and brutal solution, that's why I used jQuery. But in the future I will definitely integrate other frontend frameworks and more buzzword worthy stuff.