We were inspired by the popularity of memes across society, especially during lockdown. Despite the physical barriers, the internet has granted us the ability to meet new people and communicate from afar - what better people to form friendships with than those who share our deepest interests.

What it does

MemePoke curates the best memes, taken by our webscraper from a variety of high profile pages on reddit. It then allows user enjoy and judge these memes, allowing them to match with others based on their meme preferences.

MemePoke allows these matched users, now new best friends, to talk through a live webchat - keeping connected despite the physical barriers.

How we built it

Made use of several cutting edge web technologies, namely:

  1. NodeJS with express to build the efficient and powerful backend to support live chat and user matching.
  2. Heroku for quickly protoyping and for efficient cheap deployment.
  3. MongoDB (as No-SQL) database solution that allows us to create powerful relational schema that supercharge our application, and store image references, user information and conversations on our chat.
  4. to keep a live continuous connection between the front and back end to create a seamless social experience, and ensure basic security by isolating the database from clients.
  5. jsoup and mongoDBdriver in java to run our webscraper, collecting the very best meme urls and sending them to our database.
  6. Semantic UI to rapidly prototype the front end of the website in a stylish manner.

Challenges we ran into

  1. Authentication proved to be rather difficult as there was not much clear documentation online.
  2. Curating memes, ensuring non-meme images were not scraped.

Accomplishments that we're proud of

  1. We have accomplished everything we set out to do despite the time pressures.
  2. Real time updating of chat, and chat history consistently for both sides of a conversation.
  3. Database schema was well designed and allowed for seamless realization of our ideas throughout development.

What we learned

  1. Javascript's lack of static types caused a myriad of issues, in future we would consider typescript to mitigate these issues.
  2. No-SQL databases are extremely effective for rapidly prototyping web-applications.

What's next for MemePoke

We want to add group chats, images in chat (potentially video feed also), a more complex matching algorithm. We also are considering using machine learning for more effective meme suggestions and meme curation.

+ 5 more
Share this project: