School Asset Management System · Version 1.0.0
Asset tracking, maintenance, transfers, and reporting for schools — with role-based access across province, municipality, and school.
This is an independent portfolio project. It is not an official government production system.
| Author | Pradip Kumar Prajapati |
| Version | 1.0.0 |
| License | MIT |
| Copyright | © 2026 Pradip Kumar Prajapati |
| Repository | github.com/pradipNP/opensams |
The public demo is hosted on free tiers. The first visit after idle time can take up to a minute while Render and Neon wake.
| What | Where it is hosted | URL |
|---|---|---|
| Web app (Vue) | Cloudflare Pages | https://opensams.pages.dev |
| API | Render | https://opensams.onrender.com |
| API health | Render | https://opensams.onrender.com/health |
| API docs (Swagger) | Render | https://opensams.onrender.com/api/docs |
| Database | Neon (PostgreSQL) | Not a public URL — the API connects over SSL |
How to run this stack yourself: docs/Deployment-Guide.md.
sample.mp4
- JWT authentication and three roles (State Administrator, Municipal Officer, School Administrator)
- Scoped inventory: assets, categories, schools, and municipalities
- Maintenance and inter-school transfer workflows
- Dashboard KPIs and reports (XLSX / PDF)
- User administration for the State Administrator role
| Layer | Technology |
|---|---|
| Frontend | Vue 3, Vite, Vue Router, Pinia, Tailwind CSS |
| Backend | Node.js, Express |
| Database | PostgreSQL |
| Auth | JWT, bcrypt, RBAC |
These accounts are for a public portfolio demo. Anyone can sign in. Visitors can create or change records.
The hosted demo can restore the original seed snapshot on a timer (default every 24 hours) when DEMO_RESET_ENABLED=true on the API. That is optional and off unless you set it. Local databases are not reset unless you run the reset yourself.
| Role | Password | |
|---|---|---|
| State Administrator | state.admin@sams.gov.np |
password |
| Municipal Officer | municipal.butwal@sams.gov.np |
password |
| School Administrator | school.kmg@sams.gov.np |
password |
Try each role to see scoped dashboards, assets, maintenance, transfers, and reports.
| Document | Description |
|---|---|
| docs/User-Guide.md | How to use the application |
| docs/Deployment-Guide.md | How to build and run frontend, backend, and database |
| docs/Production-Checklist.md | Release checklist |
| docs/Technical-Documentation.md | Architecture, RBAC, and folder structure |
| docs/SAMS-Nepal-Architecture-Plan.html | As-built architecture plan (HTML) |
| docs/SAMS-Nepal-Architecture-Plan.pdf | As-built architecture plan (PDF) |
| docs/API-CONTRACT.md | REST API specification |
| docs/ER-DIAGRAM.md | Database model |
Requires Node.js 20+ and PostgreSQL. Copy backend/.env.example and frontend/.env.example to .env before the first run. Do not commit .env files.
Typical local values:
- Frontend:
http://localhost:5173 - API:
http://localhost:5001(PORT=5001in your localbackend/.env) - Frontend API base:
VITE_API_URL=http://localhost:5001/api/v1 - PostgreSQL: set
DATABASE_URLin localbackend/.env
cd backend
npm install
npm run dev
cd frontend
npm install
npm run dev
The live demo does not use these localhost values. It uses the Cloudflare Pages and Render URLs in Live demo above. See the deployment guide and production checklist.
This project is licensed under the MIT License.
Copyright © 2026 Pradip Kumar Prajapati. See LICENSE for terms.