Logo Lanfrica
  • Accueil
  • Atlas
  • Analyses
  • Documentation
  • Sign in

© 2026 Lanfrica. Tous droits réservés. Tous les droits d'auteur des ressources affichées sur le site Web Lanfrica appartiennent aux détenteurs de droits d'auteur d'origine, sauf indication contraire explicite.

isru0973/Ethiopian-Mesob-Service-Project

Domaine:

digital infrastructure

Type de record:

software
Créateur:
isr
Hôte:
Many services in one login # Mesob-Lite (Full-Stack) A full-stack prototype of a one-stop digital government service portal, inspired by Ethiopia's **MESOB** (Modern Ethiopian Service for Organized Benefit) platform. Built as a final-year internship project. > Student prototype for internship coursework. Not affiliated with the Federal Government of Ethiopia or the real MESOB platform. All data (service centers, service names) is illustrative. ## Architecture ``` mesob-lite-fullstack/ ├── frontend/ HTML5, CSS3, vanilla JavaScript (talks to the API over fetch()) └── backend/ Node.js + Express REST API + SQLite database (better-sqlite3) ``` The frontend and backend are two separate applications that communicate over a JSON REST API — a standard decoupled client/server architecture. The frontend runs on its own static file server; the backend runs on its own Node process and owns the database. ``` Browser (frontend) --HTTPS/JSON + JWT--> Express API (backend) --SQL--> SQLite database ``` ## What's new in this version The original prototype stored everything in the browser's `localStorage`. This version replaces that with: - **A real backend**: Node.js + Express, organized into routes / controllers / middleware - **A real database**: SQLite (via `better-sqlite3`) with four tables — `users`, `service_groups`, `services`, `requests` — related by foreign keys - **Real authentication**: citizens register and log in with a hashed password (Node's built-in `crypto.scrypt`) and receive a JWT (hand-rolled with `crypto`, HMAC-SHA256) used to authorize every subsequent request - **Role-based access**: `citizen` vs `staff` accounts. Only staff can see the full request queue or change a request's status - **A real REST API** — see `backend/README.md` for the full endpoint list ## Running it locally You need two terminals — one for each half of the app. **1. Start the backend (API + database)** ```bash cd backend npm install npm start # API running at localhost ``` The fir …

Visit

github.com

Languages

Amharic