Coder Social home page Coder Social logo

chirpbird's Introduction

ChirpBird

Welcome to Haraj take home challenge!

In this challenge you will be assigned to help fictional startup called ChirpBird to create their instant messaging platform. Basically they want to create platform similar like Facebook Messenger, WhatsApp, or Telegram.

ChirpBird have vision to make it easy for people around the world to stay connected. It is your job to make that happen through your system. ๐Ÿ˜

Requirements

You need to create system with client-server architecture. For the server you need to develop it using Go. As for the client, you just need to create a web app (you could use whatever tools or framework to create it).

The system needs to be:

  1. Capable of delivering message to client instantly through Websocket
  2. Capable of delivering text message
  3. Capable of hosting P2P & Group chat
  4. Horizontally scalable
  5. Resilient from failure (since the system will be distributed, there should be tons of potential failures)

Deployment

It is not mandatory to deploy your system on public. However if you decided to do so, it would be very great.

At the very least you need to deploy your system using docker-compose locally.

Evaluation

  1. System design
  2. Project documentation (any docs that help people understand your project better)
    • API documentation
    • Architecture diagram
    • DB schema
    • Class diagram
    • Failure handling documentation
    • etc...
  3. System fail safe strategies
  4. Code readibility, cleanliness, & testability
  5. UI comfortability (good UX)
  6. Deployment strategy (bonus)

Submission

  1. Fork this repo.
  2. After you finish creating your changes, submit the link of your fork along with your CV & cover letter to this page.
  3. In your cover letter, share with us what changes you have made and what further changes you would prioritize if you had more time.

Deadline

There is no exact deadline date for this project. The only deadline is when the vacancy has been closed. We plan to open the vacancy for the next 3 months (it was first published on November 15, 2021).

So feel free to take your time.

Questions

Got any questions? Feel free to open issues.

chirpbird's People

Contributors

riandyrn avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.