A chatbot extension for Facebook Messenger Platform.
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! 🎅🎅
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
All users joining the party must have facebook chat enabled. Otherwise they will not recieve any system notifications.
- Party creation and invitation features
- Name distribution, reminders
- Database storage
- Deploy to Heroku
- I just want something that works c:
- API tokenization
- Profiles
- Help and more informations
- Wishlists!
- No bugss!
- Shift to a more modern frontend framework
- Party Announcements! (No clue why this is necessary)
- Gift recommendation based on wishlists!
- Customized Party rules (gift exchange, etc.)
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
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.