Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

KabriAcid/numora

Repository files navigation

Numora Web Application

Numora is a Virtual Top-Up (VTU) platform designed to offer the cheapest data and airtime bundles (at near reseller prices, ~1% profit margin), while monetizing through ads, tasks, and referral rewards. The application provides a modern React frontend, a PHP backend with MySQL, and a secure, scalable architecture.


πŸš€ Features

For Users

  • Secure registration & login (JWT-based authentication)

  • Wallet system with:

    • Cash balance (funding, airtime/data purchases)
    • Reward balance (earned via ads, tasks, referrals)
  • Services supported:

    • Airtime top-up (MTN, Airtel, Glo, 9Mobile)
    • Data bundles
    • TV subscriptions (DSTV, GOTV, Startimes)
    • Electricity & bills (extensible)
  • Transaction history with filtering

  • Tasks & Rewards:

    • Watch ads
    • Complete surveys
    • App installs
    • Referral bonuses
  • Profile & Settings:

    • Update personal info
    • Manage PIN & password
    • Enable biometrics, hide balance

For Admins

  • Admin dashboard with KPIs & charts (user growth, service usage, revenue)
  • Manage services & pricing (bulk updates)
  • User management (lock/unlock, reset PINs, manage referrals)
  • Transaction management (approve/revoke/refund)
  • Task management (create/edit ad campaigns & user tasks)
  • System settings (app-wide configurations)
  • Audit logs for accountability

πŸ›  Tech Stack

Frontend (React + TypeScript)

  • React + TypeScript
  • Tailwind CSS (custom color palette, Ginto font)
  • Framer Motion (animations)
  • Recharts (charts & analytics)
  • Axios (API requests)
  • React Router (routing)
  • LocalStorage tokens (auth)

Backend (PHP + MySQL)

  • PHP (via XAMPP)

  • MySQL database with:

    • Referential integrity & cascading rules
    • Normalized schema
    • Task & rewards integration
  • JWT authentication (access + refresh tokens)

  • RESTful JSON APIs for frontend consumption

Future Integrations

  • Firebase (real-time database, push notifications)
  • Payment gateways (Paystack, Flutterwave)
  • Ads SDKs (Google AdMob, Facebook Audience Network)

πŸ“‚ Directory Structure

src/
 App.tsx # Main app entry, routing & auth
 index.css # Global styles
 assets/ # Fonts, icons, images
 components/
 auth/ # Login, Register, ResetPassword
 dashboard/ # User dashboard, analytics
 admin/ # Admin dashboard, analytics, users
 layout/ # Shared layouts, sidebar, nav
 modals/ # Reusable modals (FundWallet, Withdraw)
 profile/ # User profile pages
 services/ # Airtime, Data, TV, Electricity, Education
 transactions/ # History & filters
 ui/ # UI widgets (charts, cards, grids)
 wallet/ # Wallet & funding

πŸ—„ Database Schema (Highlights)

Core Entities

  • users – user accounts
  • wallets – cash & reward balances
  • auth_tokens – refresh tokens for JWT
  • reset_tokens – password/PIN resets

Services & Providers

  • service_categories – Airtime, Data, TV, Bills
  • services – sub-services (e.g., Airtime Top-up)
  • service_providers – MTN, Airtel, DSTV
  • service_plans – MTN 1GB Daily, Airtel 2GB Weekly, etc.

Transactions & Logs

  • transactions – user purchases & wallet funding
  • logs – activity logs (actions, IPs, user agents)
  • notifications – system/user alerts

Monetization

  • tasks – ads, surveys, installs
  • task_submissions – user proofs & statuses
  • referral_rewards – referral earnings

Admin & System

  • support_tickets – user support
  • app_settings – configurable app settings

🌱 Seed Data

Users

  • Admin: admin@numora.com / Admin@123
  • Demo User: musa@example.com / User@123

Wallets

  • Admin: ₦100,000
  • Demo User: ₦500 cash, ₦50 reward

Services

  • Airtime (MTN, Airtel)
  • Data (MTN 1GB Daily, Airtel 2GB Weekly)
  • TV (DSTV Premium)

Tasks

  • Watch ad video β†’ ₦20 reward
  • Install XYZ app β†’ ₦50 reward

Referral Example

  • Demo user referred Admin β†’ ₦100 reward

πŸ”’ Security

  • Passwords hashed with SHA2 (or bcrypt in production)
  • JWT authentication (access & refresh tokens)
  • Input validation & sanitization
  • Foreign keys with ON DELETE CASCADE & ON UPDATE CASCADE
  • Role-based access control (user, admin, superadmin)

▢️ Running Locally

Backend (XAMPP)

  1. Import numora_db.sql into phpMyAdmin.
  2. Start Apache & MySQL in XAMPP.
  3. Place backend PHP files in htdocs/numora-backend/.

Frontend (React)

git clone <repo-url>
cd numora-frontend
npm install
npm run dev

Access:

  • User Dashboard β†’ http://localhost:3000/dashboard
  • Admin Dashboard β†’ http://localhost:3000/admin

πŸ“ˆ Business Model

  • Cheapest Data Strategy: Sell data at reseller rates with minimal markup.

  • Revenue Streams:

    • Ads (video, banners)
    • YouTube video links.
    • User tasks (sponsored installs, surveys)
    • Referral system
  • Long-term: Expand into bill payments, micro-loans, and value-added services.


βœ… Roadmap

  • Core schema & seed data
  • Wallets & transactions
  • Tasks & rewards
  • Integrate JWT authentication
  • Firebase push notifications
  • Ads SDK integration
  • Launch mobile app wrapper

Summary: Numora is more than just a VTU platform β€” it’s a fintech-inspired ecosystem combining cheap data sales, gamified rewards, and ads-based revenue. With scalability and security at its core, Numora is built for long-term growth.

About

A modern, responsive, Apple Design User Dashboard UI for a VTU (Virtual Top-Up) platform.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

Contributors

AltStyle γ«γ‚ˆγ£γ¦ε€‰ζ›γ•γ‚ŒγŸγƒšγƒΌγ‚Έ (->γ‚ͺγƒͺγ‚ΈγƒŠγƒ«) /