Agri Samaj — Open-Source Community Platform
An open-source Marathi–English platform built specifically for the Agri Samaj community. It helps people discover local businesses, support community entrepreneurs, access publications and announcements, and stay connected through shared community services.
Problem & context
Give the Agri Samaj community one place to discover local entrepreneurs, register businesses, access publications, and follow community announcements in Marathi or English.
My contribution
End-to-end Next.js interface, business onboarding and approval routes, Prisma/PostgreSQL data models, private uploads, and administration tools.

Explore the workflow.
Browse the live directory and community content without an account. Business registration and administrative tools require sign-in.
Failure path: An applicant attaches another account's file, selects an inactive category, or tries to edit a business they do not own.
The registration route rejects invalid uploads/categories with 400 and unauthorized edits with 403 before writing the application. Missing business records return 404.
An engineering decision.
Applicants can submit detailed documents without publishing them. The directory selects approved businesses, while account and upload checks control access to application data.
Implemented approach
Separate approved public business fields from private application records and uploaded documents.
Alternative & tradeoff
Expose the registration record directly as a public directory entry.
Follow the system.
Implementation details.
How it works
- Public directory queries include approved businesses only, with search, category/location filters, and pagination limited to 50 records per request.
- Registration validates the payload, active category, application ownership, and attached uploads before saving.
- HttpOnly JWT sessions are checked against the current active database account and role.
- Marathi–English screens cover business discovery, registration, publications, announcements, and community administration.
Constraints & next steps
- New business listings need administrative approval before they appear publicly.
- Publication content, advertising rates, and announcements are maintained by administrators; availability depends on published records.
- The optional census module is disabled by default and restricted to authorized teams.
Source code.
Explore the controllers, schemas, and services behind this project.