BeanBakers Fullstack Code Challenge: MessagesApp

Challenge yourself with BeanBakers code challenge and showcase your skills by creating a small fullstack web application with a stack of your choice.

Three best implementations will be rewarded. The Code challenge closes on Feb 28th 2023.

Your Challenge

Your challenge is to build a simple fullstack web application which can be used to send and receive messages between its users, using any language, tools or technologies of your choice. You are welcome to use framworks or other tools as you like, so long as the code responsible for the business logic and frontend is your own. There is no need or expectation to reinvent any wheels.

You can choose how much emphasis you place on the backend and frontend respectively, as long as at least the MVP (level 1) requirements are met, but the application should nevertheless be usable from a standard modern browser, beyond that you can make your backend or frontend as fancy or simple as you like.

You are welcome to also add additional features, but be veary of feature creep. As you should know, less is more.

The detailed assignment and requirements are listed below.

Software services image

Level I: MVP Requirements

Implement a simple messaging web app where you can send public text based messages to other users.

The below list contains the minimum requirements that must be met.

  • The code (comments, variable and function names etc.) is in English
  • Each user is identified by a screen name.
  • You can send messages to users by creating a named group (like an inbox, with public name).
  • Users can read the messages in a given group by knowing the name of the group (no passwords required here, keep it simple).
  • The contents of a given group must be stored somewhere persistent (real time delivery is not required)

Level II: Secure Messaging (Advanced)

In order to improve overall privacy and security, even if someone has access to the raw stored data, e.g. a database dump, they may NOT be able to retrieve the following information.

These are additional requirements, and you may choose to implement all, none, or only a subset of them. you may need to extend some of the Level I requirenments for reading and sending messages to be able to implement all of these.

  • Which users there are (the screen names).
  • Which groups there are (the names).
  • Who sent messages to which group.
  • What the messages are (their text content).
  • How many messages are there on average per user and/or group.
  • Information needed to successfully join a group uninvited (access to this info would bypass the previous requirements)
Software services image

Join the challenge

Join the challenge by Feb 28th 2023 via email by sending a public link to your implementations source code in version control (e.g. GitHub or similar) to the address info@beanbakers.fi and mention the Code challenge in the subject line of the email. Any attachments added into the email will be ignored.

Include at least the sections from the following README template in the README file of your submitted implementation (incl. the above task and requirements).

You can also mention in your message if you would like for us to contact you if we think a suitable oppertunity for you to join BeanBakers growing team presents itself. In this case you can also choose to add your LinkedIn profile to the email.

Prizes

Among the people who choose to accept this challenge three (3) different in our opinion best implementations will be chosen to win a 100€ gift card to Verkkokauppa.com.

The prizes will be awarded to the most accomplished implementations in the following categories and at most one prize will be awarded per implementation.

  • Fullstack implementation: prize given for the most accomplished overall implementation.
  • Frontend implementation: prize given for the most accomplished frontend or UI implementation.
  • Backend implementation: prize given for the most accomplished backend implementation.

Contact information