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 pointdatabase.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)

Log in or sign up for Devpost to join the conversation.