Skip to content

Instantly share code, notes, and snippets.

@fabyeah
Last active July 8, 2018 10:54
Show Gist options
  • Save fabyeah/915829acab702c587aac92ab26ca0579 to your computer and use it in GitHub Desktop.
Save fabyeah/915829acab702c587aac92ab26ca0579 to your computer and use it in GitHub Desktop.

Mobilehead Interview Project

Introduction

Welcome to the Mobilehead interview project! In this project you will be expected to implement a simple {slack,irc}-like chat application in React and Meteor. This project is composed of two parts - a basic section where the basic implementation of the app is developed and an extendend section where you can select an extension to the basic functionality of the app.

Project Description

Requirements

Implement a chat application similar to Slack or irc clients such as mIRC or https://kiwiirc.com/. This should be composed of a Meteor application with React as the rendering engine.

To submit this project, please create a public github repository, push your project to it and send the link to your Mobilehead contact person

Basic Implementation

Your basic implementation of the app should have the following views with the described functionality:

  • Chat list:
    • list chats in which you are participant (there can be multiple participants in a chat)
    • clicking an item in the chat list will take you to that chat's details view
  • Chat details view:
    • list all messages in the chat.
    • functionality to send a new chat message

Extensions

You should implement at least two of the following extensions to the app

  • Allow images to be sent as part of messages
  • Allow private messages between users
  • Allow editing and deleting of messages
  • Build a profile page for each user to edit their display settings (e.g. change their screen name, upload a profile picture)
  • An extension of your choosing

Technology constraints:

  • Since this is a Meteor project you will be required to use MongoDB as your database
  • Do not use the insecure and autopublish Meteor packages to simplify data publication.
  • Use React as your rendering engine
  • Feel free to use any packages from NPM / Atmosphere

Further notes

  • Please thoroughly document your code and include instructions for running your application.
  • Make sure to use small, well formed commits as opposed to commiting all code at the end.
  • If you have any issues or question, please get in touch with your contact at Mobilehead.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment