Logo Lanfrica

erickjacksonshija-ops/tenantlink

Domain:

digital infrastructure

Record type:

software
Creator:
eri
Host:
A mobile-first property management platform for Tanzania — M-Pesa payments, TANESCO billing, 4-tier role system, PWA # TenantLink A mobile-first property management platform connecting landlords, caretakers, and tenants through a unified digital ecosystem. Built for the Tanzanian market with M-Pesa payment integration and TANESCO-compliant electricity billing. --- ## Tech Stack - **Backend:** Node.js, Express.js - **Database:** MongoDB (Mongoose) - **Frontend:** EJS, HTML/CSS, JavaScript - **Auth:** JWT + bcryptjs - **Email:** Nodemailer (Gmail SMTP) - **File Upload:** Cloudinary + Multer - **PDF Generation:** PDFKit - **PWA:** manifest.json + Service Worker --- ## Setup ```bash # 1. Clone and install npm install # 2. Configure environment cp .env.example .env # Edit .env with your values # 3. Seed Super Admin account node src/seed.js # 4. Start development server npm run dev ``` --- ## Role Hierarchy ``` Super Admin └── Property Owner └── Caretaker └── Tenant ``` All non-Super-Admin accounts are created via invite-only token links. --- ## API Endpoints All routes are prefixed with the portal path. Authentication via JWT cookie. ### Auth — `/auth` | Method | Endpoint | Auth | Description | |--------|----------|------|-------------| | GET | `/auth/login` | Public | Login page | | POST | `/auth/login` | Public | Login | | GET | `/auth/register/:token` | Public | Register via invite | | POST | `/auth/register/:token` | Public | Complete registration | | GET | `/auth/forgot-password` | Public | Forgot password page | | POST | `/auth/forgot-password` | Public | Send reset email | | GET | `/auth/reset-password/:token` | Public | Reset password page | | POST | `/auth/reset-password/:token` | Public | Set new password | | GET | `/auth/logout` | Auth | Logout | ### Super Admin — `/super-admin` | Method | Endpoint | Auth | Description | |--------|----------|------|-------------| | GET | `/super-admin/dashboard` | Super Admin | Dashboard | | GET | `/super-admin/owners` | Super Admin | List owners + invites | | POST | `/super-admin/invite-owner` | Super Admin | Generate own …

Languages