← Selected work
Case study / Open-Source Community Platform

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.

Agri Samaj live Marathi homepage with community business search, entrepreneur registration, directory, and publications
Agri Samaj live website · Marathi–English community platform
Product walkthrough

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.

Contract / Visitor or applicant input → localized application request

Technical detail / Business discovery, a five-step registration form, and account dashboards

Community discovery and entrepreneur onboarding with separate public and private data paths.

Recovery / stateInvalid or unowned uploads are rejected before registration is saved. Drafts let applicants complete the process over multiple sessions.

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.

Ask Harsh’s AI

Explore Harsh’s work, with sources.

A useful place to start

What would you like
to know?

I can help you explore Harsh’s projects, experience, and skills. You can also paste a short job description to discuss the fit.