██████╗ ██████╗ ██████╗ ██╗ ██╗██╗███╗ ███╗██╗████████╗██╗ ██╗ ██╔══██╗██╔══██╗██╔═══██╗╚██╗██╔╝██║████╗ ████║██║╚══██╔══╝╚██╗ ██╔╝ ██████╔╝██████╔╝██║ ██║ ╚███╔╝ ██║██╔████╔██║██║ ██║ ╚████╔╝ ██╔═══╝ ██╔══██╗██║ ██║ ██╔██╗ ██║██║╚██╔╝██║██║ ██║ ╚██╔╝ ██║ ██║ ██║╚██████╔╝██╔╝ ██╗██║██║ ╚═╝ ██║██║ ██║ ██║ ╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═╝
Anonymous, location-verified campus discussions — powered by trust, not followers.
================================================================
Jump straight in — no setup, no installs. Works on any modern browser (desktop & mobile).
- Open the link → You'll land on the login/register page
- Register a new account → Pick any username & password (no email needed)
- Select your campus → Choose "Manipal University Jaipur" or any listed campus
- Allow location access → The app will verify your GPS position
- Explore! → Browse the feed, vote on posts, check the jury system
Temporary hackathon workaround — these options will be removed in production.
Since GPS verification is required and you may not be at a supported campus, here's how to still access everything:
| Method | Steps |
|---|---|
| Test Account | Username: testuser · Password: test1234 |
| New Account | Register normally — the hackathon build has relaxed GPS checks so evaluators outside campus can still get full access |
| Demo Mode | Append ?demo=true to the Feed URL to inject live visual simulations of the 3-Tier AI moderation pipeline directly into the feed. |
Proximity is an anonymous, real-time campus discussion platform where your physical presence on campus earns you the right to speak. No emails, no phone numbers, no usernames tied to your identity — just GPS-verified trust.
Think of it as the campus bulletin board reimagined for the digital age: a space where students can share thoughts, confessions, questions, and events — completely anonymously — while a multi-layered moderation system keeps the community healthy.
| Problem | Proximity's Answer |
|---|---|
| Trolls flood anonymous platforms | Trust Tiers — newcomers earn participation over time through verified check-ins |
| Harassment goes unchecked | 3-Tier AI Moderation — keyword filters → ML toxicity scoring → LLM contextual analysis |
| Moderation is opaque & biased | Jury System — community members vote blindly on flagged content |
| Fake accounts from off-campus | GPS Geofencing — only verified campus residents gain full access |
| Privilege never expires | Trust Decay — stop showing up, lose your voice |
|
Tiered access based on campus presence:
|
Geofenced polygons validate campus attendance using the Ray Casting algorithm — no third-party location APIs, fully self-contained. |
|
Flagged posts go to a blind jury of verified campus members. 3 votes, majority wins. No single person decides what stays or goes. |
|
|
Nested reply chains with voting, color-coded depth indicators, and GIF support via Tenor. |
Create polls, browse campus events, search across all posts — all anonymous, all verified. |
Proximity uses GPS polygon geofencing to verify that users are physically present on campus before granting participation rights.
📍 User checks in → Ray Casting Algorithm → ✅ Inside polygon · Check-in recorded / ❌ Outside · Denied
| Rule | Detail |
|---|---|
| Check-in cooldown | Max 1 check-in per 4 hours |
| GPS accuracy | Must be < 500m |
| Campus zones | Each campus is a unique polygon |
| Campus | Location | Status |
|---|---|---|
| Manipal University Jaipur (MUJ) | Jaipur, Rajasthan, India | ✅ Live |
Proximity is built to scale. Adding a new campus is as simple as defining a polygon of GPS coordinates — no code changes needed, just configuration. We plan to onboard more universities and colleges in the near future. If you'd like your campus added, reach out to us!
| Layer | Technology |
|---|---|
| Frontend | Next.js 16 · React 19 · TailwindCSS · Framer Motion · GSAP · Three.js/R3F |
| Backend | Python · FastAPI · Uvicorn |
| Database | Firebase Firestore |
| Auth | Firebase Anonymous Auth |
| AI/ML | Detoxify (HuggingFace) · Google Gemini 2.0 Flash |
| Hosting | Firebase Hosting (Frontend) · Render (Backend) |
| DevOps | Docker · Nginx · GitHub Actions |
Proximity/ ├── frontend/ # Next.js 16 web application │ ├── app/ # App Router (pages & layouts) │ ├── components/ # UI components (feed, jury, 3D, auth, mod) │ ├── lib/ # API clients, Zustand stores, hooks, utils │ └── types/ # TypeScript type definitions ├── backend/ # Python FastAPI server │ ├── api/ # Route handlers (posts, jury, verify, mod, etc.) │ ├── services/ # Business logic layer (19 services) │ ├── middleware/ # Auth & rate limiting │ ├── models/ # Pydantic request/response schemas │ └── tests/ # Unit & integration tests ├── hf_detoxify/ # Hugging Face Spaces ML model ├── nginx/ # Reverse proxy config └── docs/ # Feature documentation
- Node.js 18+ · Python 3.11+ · Firebase project
�ash cd frontend npm install npm run dev # → http://localhost:3000
�ash cd backend pip install -r requirements.txt python main.py # → http://localhost:8000
�ash docker compose up --build # Frontend + Backend with hot-reload
| Tier | Access | How to Reach |
|---|---|---|
| 👻 Ghost (Stage 0) | Read only | New account — default tier |
| 👁️ Observer (Stage 1) | Vote + Report | 7+ days, 10+ check-ins |
| 🗣️ Voice (Stage 2) | Full posting access | 14+ days, 20+ check-ins |
| 🛡️ Moderator | Jury + Mod queue | Appointed by admins |
| Condition | Action |
|---|---|
| Last ping < 14 days | ✅ Active |
| Last ping > 14 days | |
| Last ping > 28 days | 🔒 Account locked |
| Service | URL |
|---|---|
| 🌐 Platform | proximity.strawhats.co.in |
| ⚡ Backend API | proximityweb.strawhats.co.in |
| 📚 API Docs | proximityweb.strawhats.co.in/docs |
Have questions, feedback, or want your campus added?
Access the AI Moderation dashboard on the /impact\ route to view live AI content moderation impacts across all campuses.