I am a pre-final year student (expected graduation month - May 2023) studying Electronics and Communication Engineering at Sardar Vallabhbhai National Institute of Technology, Surat, India. I have participated in GSoC’21 with WeField e.V. under the umbrealla of coala Association e.V. open-source organization. My project, Microfarm For Everybody (Django-Microfarm), aims to create a tool that allows anyone to become a market gardener, given some space. As a first step, a user will merely sign up and enter the amount of space that they wants to use. The system will then trigger tasks the user has to do to farm on his space efficiently. Those tasks are triggered by simple rules and may depend on weather events, date, and later also other triggers. Thus, anyone can be a market gardener, and this tool will be beneficial and easy to use.
Repository | Link to Commit/s | Description | |
G | GSoC/GSoC-2021 | View | Business Model Canvas of Django Micorfarm |
G | GSoC/GSoC-2021 | View | Deciding project requirements and database handling |
G | GSoC/GSoC-2021 | View | Create Wireframe of the application |
d | django-microfarm | View | proposal.md: Add Django Microfarm Proposal |
d | django-microfarm | View | Add django-microfarm setup |
d | django-microfarm | View | settings.py: Setup environment variables and test-requirements |
d | django-microfarm | View | gitlab-ci.yml: Add CI for |
d | django-microfarm | View | Add User Authentication System |
d | django-microfarm | View | Add market-garden schemas |
d | django-microfarm | View | Add market-garden cropmap script |
d | django-microfarm | View | Add watering script using Weather and Forecast API |
d | django-microfarm | View | Implement watering tasks |
d | django-microfarm | View | Create Section and Bed objects |
d | django-microfarm | View | Create todo tasks objects |
d | django-microfarm | View | Create all the endpoints for the Application |
d | django-microfarm | View | Implement APIs Documentation |
d | django-microfarm | View | Creating single migration file for each model |
black
linterdjango-signals
and celery
to automatically create objects such
Section and Bed objects, periodic tasks and todo objects.The biggest challenge was writing the codebase from scratch such that it can become the strong foundation of the application in the future. It took time to design the project structure and deciding on the schemas of database. I learnt a lot during the journey, so learning new things also consumed time. The hurdles were:
JWT(Json Web Token)
Authentication and Social
Authentication.django-signals
, to automatically create objects and run scripts. For
e.g., on saving a Market-Garden, a function to calculate cropmap and to
create sections and beds objects should be executed.celery
, to queue up these tasks and also to implement periodic
tasks.JWT
Access token by decoding it.Unit tests for the models and functions, deployment of the application and some improvised documentation are required to be done.