RT03 Neighborhood Management System
Community neighborhood administration platform with admin dashboards, resident records, financial ledger, inventory loans, announcements, and an AI assistant grounded in Firestore records.

An information system for an Indonesian neighbourhood association (RT) — residents, committee, finances, shared inventory, lending, announcements and a small community shop — with an AI assistant that can answer questions about any of it.
Highlights
- The assistant sees the whole neighbourhood, not one table — the client gathers residents, committee, finances, inventory, loans, announcements, shop products and transactions from Firestore, formats them into a single structured context, and sends that to the model. Questions that span two domains — who has not paid their dues and also has an item on loan — are answerable because both are in the same prompt.
- Context is built on the client, the key stays on the server — the browser assembles the data it is already authorised to read, and a Vercel serverless function holds the API key and performs the model call. The key never ships to the browser, and the function never needs its own database credentials.
- Firestore as the whole backend — no server of its own to run or pay for, with the data model living directly in collections and the site deployed as static pages plus one function.
- Lending is tracked as state, not as a note — shared inventory items carry a borrowing record, which is the difference between an asset register and knowing where the tent actually is.
- A community shop inside the association's own site — products and transactions are first-class parts of the same database the assistant reads, so shop activity shows up in answers about the RT's finances.
- Separate admin surface — a dedicated login and dashboard for committee members, kept apart from the public-facing pages.
Key Features
- Resident registry — household and resident records as the core of the system.
- Committee directory — who holds which position in the association.
- Finance tracking — dues and expenditure recorded against the neighbourhood's accounts.
- Shared inventory and lending — the association's assets, with who currently holds each one.
- Announcements — notices published to residents from the admin dashboard.
- Community shop — products and transactions, with a debug view for the inventory data.
- AI chatbot — natural-language questions answered from the live Firestore contents through a DeepSeek-backed serverless endpoint.
Tech Stack
- HTML + CSS + vanilla JavaScript (multi-page, no framework)
- Firebase Firestore (data) + Firebase Storage
- Vercel Serverless Functions (
api/chat.js) with the OpenAI SDK 4 pointed at DeepSeek - Node.js ≥ 18, deployed through the Vercel CLI
Status & Maturity
Completed. There is no automated test suite; verification was manual, with one debug page kept in the repository for inspecting inventory data directly. Building the entire context client-side and sending it in one request is simple and works at neighbourhood scale, but it is the design's natural limit — the prompt grows with the database, so a much larger association would need retrieval rather than a full dump.
Measured Metrics
| Commits | 16 |
| Date Range | 6 Feb 2026 – 14 Feb 2026 |
| Lines of code | 30,211 |
| Automated tests | none |