{"id":26981111,"url":"https://github.com/sanjayengineer121/djangi-api-chalange","last_synced_at":"2025-07-31T22:43:06.146Z","repository":{"id":228464054,"uuid":"774072035","full_name":"sanjayengineer121/Djangi-APi-chalange","owner":"sanjayengineer121","description":null,"archived":false,"fork":false,"pushed_at":"2024-03-18T22:30:47.000Z","size":1233,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-03-18T23:36:09.288Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sanjayengineer121.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2024-03-18T22:29:05.000Z","updated_at":"2024-03-18T23:36:11.415Z","dependencies_parsed_at":"2024-03-18T23:47:46.413Z","dependency_job_id":null,"html_url":"https://github.com/sanjayengineer121/Djangi-APi-chalange","commit_stats":null,"previous_names":["sanjayengineer121/djangi-api-chalange"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sanjayengineer121%2FDjangi-APi-chalange","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sanjayengineer121%2FDjangi-APi-chalange/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sanjayengineer121%2FDjangi-APi-chalange/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sanjayengineer121%2FDjangi-APi-chalange/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sanjayengineer121","download_url":"https://codeload.github.com/sanjayengineer121/Djangi-APi-chalange/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247028213,"owners_count":20871662,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-04-03T15:32:44.070Z","updated_at":"2025-04-03T15:32:54.958Z","avatar_url":"https://github.com/sanjayengineer121.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"Django Code Challenge\nVarsha Shriram Bhosale\nVarsha Shriram Bhosale\nMar 11\nThank you for your application as a Python Developer. To proceed with the assessment, please create a Django project with the following features -\n\nObjective: \n\n The API implementation at a publicly accessible location.\nCreate a Python/ DRF (Django rest framework) website with Git-based source control with the ability to: \n Retrieval of books meeting zero or more filter criteria. You can use either a PostgreSQL database dump or a MySQL dump of books for data from the mentioned repository.\nEach query should return the following:\nThe number of books meeting the criteria\nA list of book objects, each of which contains the following: \n          Title of the book\n          Information about the author\n          Genre\n          Language\n          Subject(s)\n          Bookshelf(s)\n          A list of links to download the book in the available formats (mime-types)\n3. The following rules apply:\nIn case the number of books that meet the criteria exceeds 20, the API should\nreturn only 20 books at a time and support the means of retrieving the next sets\nof 20 books till all books are retrieved.\nThe books should be returned in descending order of popularity, as measured by\nthe number of downloads.\nData should be returned in a JSON format.\n4. The following filter criteria should be supported:\nBook ID numbers specified as Project Gutenberg ID numbers.\nLanguage\nMime-type\nTopic - topic should filter on either ‘subject’ or ‘bookshelf’ or both. Case-insensitive partial matches should be supported. e.g. ‘topic=child’ should among others, return books from the bookshelf ‘Children’s Literature’ and from the subject ‘Child education’.\nAuthor - Case-insensitive partial matches should be supported.\nTitle - Case-insensitive partial matches should be supported.\nMultiple filter criteria should be permitted in each API call and multiple filter\nvalues should be allowed for each criterion. e.g. an API call should be able to\nfilter on ‘language=en,fr’ and ‘topic=child, infant’.\n\n 5. Bonus: Show test coverage for the project.\n\n\nAssessment Criteria:\n\n1) Can the candidate produce an appropriate database model, do they understand how the Django ORM works? ; \n\n2) Do they understand Test-Driven Development? \n\n3) Do they have an understanding of Django REST framework and can use it as per requirements?\n    \n\nYou should share your completed project as a repo on GitHub on the mentioned date. Looking forward to your solution.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsanjayengineer121%2Fdjangi-api-chalange","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsanjayengineer121%2Fdjangi-api-chalange","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsanjayengineer121%2Fdjangi-api-chalange/lists"}