Farm API

This is a technical test to evaluate your integration and web development knowledge. We will accept submissions in any of NodeJS (TypeScript or JavaScript), PHP, Java and Python.

Please avoid using a full web application framework such as NestJS or Laravel as they do a lot of the decision making for you and we want to see what decisions and choices you make. You are free however, to use smaller packages to speed up development process.

Task

  • Implement a simple RESTful API that:
    • Makes available the data in this file
    • Provides ability to add/edit/delete data
    • Provides ability to paginate response (default 30 items per page)
    • Provides ability to query data sets on their field values and linked field values (e.g. farmer_id in applications)

Extra / Bonus Points

  • If you have extra time feel free to add extra features you think would be appropriate, e.g:
    • Authentication
    • Rate Limiting

Note

  • Must demonstrate good development practices.
  • We will be looking at your git history to understand your process, so please make it clear with appropriate commit messages.

Info

The above task should be clear and manageable to be completed within ~2 hours timeframe for the experienced developer. If you have any questions feel free to ask as soon as possible as this is a time-critical task.

We aren't providing a skeleton project for this.

We will be evaluating this as evidence of your ability to develop quality code, so please keep that in mind and consider test coverage and good principles. Better to do a smaller deliverable of excellent quality than to provide more features but in a slap-dash fashion.