Skip to content

9M2PJU/9M2PJU-MARTS-Membership

Repository files navigation

MARTS Logo

Malaysian Amateur Radio Transmitters' Society (MARTS) Membership Directory

The Unofficial Modern Membership Database for 9M/9W Hams

License: MIT Next.js TypeScript Tailwind CSS Supabase Vercel
Website Status


🚀 Overview

A high-performance, responsive web application tailored for the Malaysian Amateur Radio Transmitters' Society (MARTS). Built to provide lightning-fast lookups, advanced filtering, and a beautiful futuristic interface.

Note: This is an unofficial community project made for 🇲🇾 by 9M2PJU.

✨ Features

  • ⚡ Blazing Fast: Powered by Next.js App Router and Supabase.
  • Performance:
    • Parallel Data Fetching: 4x faster initial load.
    • Debounced Search: Instant responsiveness.
    • Memoized Components: Optimized rendering.
  • 🔍 Advanced Search: Instant callsign, name, or ID lookup.
  • 📻 Smart Filters:
    • Class: A, B, C, and SWL support.
    • Region: West Malaysia, Sabah, Sarawak.
    • Status: Live Active/Expired sorting.
  • 📱 Mobile Optimized: Fully responsive PWA-ready design.
  • 🎨 Modern UI: Glassmorphism aesthetics with "Space/Orbitron" theme.
  • 🛡️ RBAC Admin: Role-based access control for Admins and Super Admins.

🛠️ Tech Stack

Component Technology
Framework Next.js 14 (App Router)
Language TypeScript
Styling Tailwind CSS + Lucide Icons
Database Supabase (PostgreSQL)
Auth Supabase Auth
Deployment Vercel

🚀 Getting Started

To get a local copy up and running, follow these steps.

Prerequisites

  • Node.js 18+ installed

Installation

  1. Clone the repo

    git clone https://github.com/9M2PJU/9M2PJU-MARTS-Membership.git
  2. Install NPM packages

    npm install
  3. Set up your .env.local file with Supabase credentials.

  4. Run the development server

    npm run dev

📜 Callsign Structure

Prefix Region Class
9M2 West Malaysia A
9M6 Sabah A
9M8 Sarawak A
9W2 West Malaysia B
9W6 Sabah B
9W8 Sarawak B
SWL West Malaysia SWL

📄 License

Distributed under the MIT License. See LICENSE for more information.


Made with ❤️ by 9M2PJU