Developed for the Ministry of Innovation and Technology (MInT), Ethiopia
- About The Project
- Key Features
- Tech Stack
- System Architecture
- Getting Started
- User Roles
- API Documentation
- Contributing
- Contact
MINT Navigator is a comprehensive visitor guidance and feedback management system built for the Ministry of Innovation and Technology (MInT) in Ethiopia.
The system helps visitors navigate across the Ministry's two buildings, collects real-time visitor feedback, and generates data-driven department performance rankings to support executive decision-making.
💡 Visitors can find any department by floor, building, or sector. Executives can see which departments are performing best based on real customer ratings.
- Smart Navigation — Browse departments by sector, building, or floor
- Step-by-Step Directions — Detailed directions with landmarks
- Multilingual Support — English 🇬🇧, Amharic 🇪🇹, Afaan Oromo
- Feedback Submission — Rate and comment on department service quality
- Department Search — Real-time search across all departments
- Department Management — Full CRUD operations
- Sector Management — Organize departments into sectors
- Announcement System — Create and schedule visitor announcements
- System Complaints — Monitor and resolve technical issues
- Analytics Dashboard — Real-time charts and performance metrics
- Department Rankings — Data-driven rankings based on customer ratings
- Feedback Management — View, respond, and resolve visitor feedback
- Report Generation — Export analytics reports for executives
- JWT-based authentication
- Role-based access control (RBAC)
- Rate limiting & input sanitization
- Secure HTTP headers (Helmet)
| Layer | Technology |
|---|---|
| Frontend | React 19, Vite, Tailwind CSS, Framer Motion |
| Backend | Node.js, Express.js 5 |
| Database | MongoDB Atlas, Mongoose |
| Auth | JWT, bcryptjs |
| Charts | Recharts, Chart.js |
| Storage | Cloudinary |
| Nodemailer | |
| Deployment | Netlify (frontend), Render (backend) |
┌─────────────────────────────────────────────────┐
│ MINT Navigator │
├──────────────┬──────────────┬────────────────────┤
│ Visitors │ Admins │ Analysts │
│ Navigation │ CRUD Ops │ Analytics/Ranking │
│ Feedback │ Announce │ Feedback Inbox │
└──────┬───────┴──────┬───────┴────────┬───────────┘
└──────────────┼────────────────┘
│
┌────────▼────────┐
│ React Frontend │ (Netlify)
└────────┬────────┘
│ REST API
┌────────▼────────┐
│ Express Backend │ (Render)
└────────┬────────┘
┌───────┼──────────┐
▼ ▼ ▼
MongoDB Cloudinary Nodemailer
- Node.js v18+
- MongoDB Atlas account
- Git
# 1. Clone the repository
git clone https://github.com/Ebo1996/mintnavigation.git
cd mintnavigation
# 2. Install backend dependencies
cd backend
npm install
# 3. Install frontend dependencies
cd ../frontend
npm installBackend (backend/.env):
PORT=5000
MONGODB_URI=your_mongodb_connection_string
JWT_SECRET=your_jwt_secret
CLOUDINARY_CLOUD_NAME=your_cloud_name
CLOUDINARY_API_KEY=your_api_key
CLOUDINARY_API_SECRET=your_api_secret
EMAIL_USER=your_email@gmail.com
EMAIL_PASS=your_app_passwordFrontend (frontend/.env):
VITE_API_URL=http://localhost:5000/api# Terminal 1 - Backend
cd backend
npm run dev
# Terminal 2 - Frontend
cd frontend
npm run dev- Frontend: http://localhost:5173
- Backend API: http://localhost:5000/api
- Health Check: http://localhost:5000/api/health
| Role | Access |
|---|---|
| Visitor | Browse departments, search, submit feedback |
| Admin | CRUD departments & sectors, manage announcements |
| Feedback Analyst | View analytics, manage feedback, generate reports |
| Sector Manager | View & respond to sector-specific feedback |
| Department Head | View & respond to department-specific feedback |
| Superadmin | Full system access + user management |
Base URL:
Production: https://mint-navigation-u0hc.onrender.com/api
Development: http://localhost:5000/api
| Method | Endpoint | Description | Auth |
|---|---|---|---|
| GET | /departments |
Get all departments | ❌ |
| GET | /departments/:id |
Get single department | ❌ |
| POST | /departments |
Create department | ✅ Admin |
| PUT | /departments/:id |
Update department | ✅ Admin |
| DELETE | /departments/:id |
Delete department | ✅ Admin |
| POST | /feedback |
Submit feedback | ❌ |
| GET | /analytics/overview |
Dashboard stats | ✅ Analyst |
| GET | /analytics/rankings |
Department rankings | ✅ Analyst |
| POST | /admin/login |
Admin login | ❌ |
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Developers:
| Name | GitHub |
|---|---|
| Ebisa Berhanu | Ebo1996 |
| Anam Tesfa | anotesfa |
| Natnael Kefyalew | Nati121442 |
University: Jimma University Institute of Technology Department: Software Engineering
| Link | URL |
|---|---|
| 🌐 Live Demo | mintnavigation.netlify.app |
| 📁 Repository | github.com/Ebo1996/mintnavigation |
MIT License © 2026 Ebisa Berhanu, Anam Tesfa, Natnael Kefyalew
See LICENSE for more information.
- Ministry of Innovation and Technology (MInT) — For the opportunity
- Mr. Dinber Getahun — Immediate Supervisor
- Mr. Teferi Kibebew — Department Advisor
- Jimma University — Internship program support
Made with ❤️ for the Ministry of Innovation and Technology, Ethiopia
⭐ Star this repo if you found it helpful!