Skip to content

Thermondo's backend coding challenge ๐Ÿฟ

License

Notifications You must be signed in to change notification settings

thermondo/backend-coding-challenge

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

9 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

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.