thermondo / backend-coding-challenge

Thermondo's backend coding challenge 🍿

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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.

About

Thermondo's backend coding challenge 🍿

License:MIT License


Languages

Language:Makefile 100.0%