Inspiration

Access to agricultural machinery is a significant challenge for many Sudanese farmers, especially in rural areas. High costs, poor logistics, and lack of digital infrastructure make it difficult for small-scale farmers to find and rent the tools they need. This inspired us to build AgriRent Sudan, a lightweight, accessible web application to manage and rent agricultural machinery across different states and localities in Sudan.

What it does

AgriRent Sudan provides two main user interfaces:

🔹 Visitor Interface

  • Browse available machines
  • Filter machines by state and locality
  • View machine details and owner contact number
  • Submit rental requests

🔹 Admin Dashboard

  • Secure login for admins
  • Manage machines (add/edit/delete)
  • Manage booking requests
  • Categorize machines by type, state, and locality

Features

  • Simple and mobile-friendly UI
  • Secure login with hashed passwords
  • Input validation to prevent SQL injection
  • CSRF protection for all forms
  • Easy customization for states, localities, and machine types

How we built it

  • Backend: Python (Flask)
  • Database: SQLite
  • Frontend: HTML/CSS with Jinja2 templating
  • Security: Password hashing, input sanitization, CSRF tokens

The project structure includes:

  • app.py – Main entry point
  • database.db – SQLite database
  • /static – CSS, JS, and image uploads
  • /templates – HTML templates for visitor and admin pages

Challenges we faced

  • Designing a secure admin dashboard using only lightweight tools
  • Handling form validation and state filtering with limited data
  • Structuring a scalable database using only SQLite

What we learned

  • How to develop modular Flask applications
  • Securing user inputs and authentication
  • Building systems that can be expanded in the future with minimal cost

What's next

  • Add location-aware filtering via map integration
  • Switch to PostgreSQL for larger-scale deployments
  • Enable public registration for machinery owners
  • Implement SMS notifications for booking status

Admin Test Credentials

Username: admin
Password: admin123 (development only)

GitHub Repository

https://github.com/ahmedis123/agricultural_machinery_rental

Share this project:

Updates