Complete technical documentation of the What Sikkimese Want portal - how it's built, deployed, and how everything works together
Think of this webapp like a digital suggestion box that works 24/7:
Like the form you fill out at a government office - built with HTML, CSS, and JavaScript
Like government clerks who receive and process your applications - powered by Node.js
Where all requests are stored safely - PostgreSQL on Render.com
Sends confirmation letters to your email - powered by SendGrid
Announces new requests in district community groups instantly
The place where all this happens, running 24/7 - on Railway.app
| Method | Endpoint | Purpose | Auth |
|---|---|---|---|
| POST | /api/requests | Submit new amenity request | No |
| GET | /api/requests | List all requests (with filters) | Admin |
| GET | /api/requests/:id | Get single request details | Admin |
| PUT | /api/requests/:id | Update request status | Admin |
| DELETE | /api/requests/:id | Delete request | Admin |
| GET | /api/track/:referenceId | Track request by reference ID | No |
| POST | /api/feedback | Submit feedback | No |
| GET | /api/feedback | List all feedback | Admin |
| POST | /api/admin/login | Admin authentication | No |
| POST | /api/admin/logout | Admin logout | Admin |
| GET | /api/stats | Dashboard statistics | Admin |
| Layer | Protection | Implementation |
|---|---|---|
| Network | HTTPS/SSL | Automatic (Railway) |
| Network | CORS | Configured in Express |
| API | Rate Limiting | 20 req/15min (submissions), 100 req/min (general) |
| API | Input Validation | Express-validator on all endpoints |
| Database | SQL Injection Prevention | Parameterized queries (pg library) |
| Database | Encrypted Connection | SSL/TLS (Render.com) |
| Admin Auth | Session Tokens | Crypto.randomBytes (64-char hex) |
| Data Privacy | Phone Masking | Partial in public views (98XX XXX XXX) |
| Service | Plan | Cost | Usage |
|---|---|---|---|
| Railway.app | Hobby | $5 + usage | Web hosting |
| Render.com PostgreSQL | Free | $0 | Database (up to 1GB) |
| SendGrid | Free | $0 | Email (up to 100/day) |
| Telegram Bot API | Free | $0 | Unlimited messages |
| Domain (whatsikkimesewant.com) | — | ~$12/year | DNS registration |
Total: Very affordable for a community project! The system can handle thousands of requests with current infrastructure.
This is a modern, secure, cloud-based platform that allows citizens to submit amenity requests 24/7. All data is safely stored, backed up daily, and accessible through an admin dashboard. The system automatically notifies users via email and posts requests to community groups on Telegram for transparency.
Standard MERN-like stack without React - Node.js/Express backend with PostgreSQL, vanilla JS frontend. RESTful API, parameterized queries for security, rate limiting for spam prevention, SendGrid for transactional emails, Telegram Bot API for community notifications. Deployed on Railway (web) and Render (database) with automatic CI/CD from GitHub.
This is a website where you can submit requests for things your area needs (parks, street lights, toilets, etc.). You get a reference number to track your request, receive email updates when status changes, and your district's Telegram group is notified so the community can discuss and support your request.
Low-cost (~$5-10/month), scalable, modern web application with automated workflows. Built with proven technologies, industry-standard security practices, and designed for transparency and citizen engagement. Can handle thousands of requests with current infrastructure, easily scalable to millions with minimal cost increase.