Giter Site home page Giter Site logo

backend-coding-challenge's Introduction

Backend Senior Coding Challenge ๐Ÿฟ

Welcome to our Movie Rating System Coding Challenge! We appreciate you taking the time to participate and submit a coding challenge! ๐Ÿฅณ

In this challenge, you'll be tasked with designing and implementing a robust backend system that handles user interactions and provides movie ratings. We don't want to check coding conventions only; we want to see your approach to systems design!

โš ๏ธ As a tech-agnostic engineering team, we ask you to pick the technologies you are most comfortable with and those that will showcase your strongest performance. ๐Ÿ’ช

โœ… Requirements

  • The backend should expose RESTful endpoints to handle user input and return movie ratings.
  • The system should store data in a database. You can use any existing dataset or API to populate the initial database.
  • Implement user endpoints to create and view user information.
  • Implement movie endpoints to create and view movie information.
  • Implement a rating system to rate the entertainment value of a movie.
  • Implement a basic profile where users can view their rated movies.
  • Include unit tests to ensure the reliability of your code.
  • Ensure proper error handling and validation of user inputs.

โœจ Bonus Points

  • Implement authentication and authorization mechanisms for users.
  • Provide documentation for your API endpoints using tools like Swagger.
  • Implement logging to record errors and debug information.
  • Implement caching mechanisms to improve the rating system's performance.
  • Implement CI/CD quality gates.

๐Ÿ“‹ Evaluation Criteria

  • Systems Design: We want to see your ability to design a flexible and extendable system. Apply design patterns and software engineering concepts.
  • Code quality: Readability, maintainability, and adherence to best practices.
  • Functionality: Does the system meet the requirements? Does it provide movie ratings?
  • Testing: Adequate test coverage and thoroughness of testing.
  • Documentation: Clear documentation for setup, usage, and API endpoints.

๐Ÿ“ Submission Guidelines

  • Fork this GitHub repository.
  • Commit your code regularly with meaningful commit messages.
  • Include/Update the README.md file explaining how to set up and run your backend, including any dependencies.
  • Submit the link to your repository.

๐Ÿ—’๏ธ Notes

  • You are encouraged to use third-party libraries or frameworks to expedite development but be prepared to justify your choices.
  • Feel free to reach out if you have any questions or need clarification on the requirements.
  • Remember to approach the challenge as you would a real-world project, focusing on scalability, performance, and reliability.

๐Ÿค” What if I don't finish?

Part of the exercise is to see what you prioritize first when you have a limited amount of time. For any unfinished tasks, please do add TODO comments to your code with a short explanation. You will be given an opportunity later to go into more detail and explain how you would go about finishing those tasks.

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.