Skip to content

Latest commit

 

History

History
83 lines (59 loc) · 3.17 KB

File metadata and controls

83 lines (59 loc) · 3.17 KB

AI-Powered Smart Notice Board Management System

A high-fidelity, full-stack digital notice board management system that replaces physical bulletin boards with smart IoT display screens. The platform incorporates real-time WebSockets, regional translation pipelines, and automated AI content moderation safeguards.


🗺️ System Architecture

  • /frontend: React SPA configured with Vite, Tailwind CSS, Recharts analytics, Framer Motion transitions, and Socket.io clients.
  • /backend: Express REST API server using TypeScript, Mongoose models, Zod schema validations, and Socket.io event rooms.
  • /ai-service: Python FastAPI microservice executing local NLP/translation fallback scripts if offline.
  • docker-compose.yml: Full-stack multi-container orchestration.

⚙️ Prerequisites

Ensure you have the following installed on your machine:


🚀 Getting Started (Native Setup)

1. Install Dependencies

Run the master installer from the root workspace folder to provision all three directories:

npm run install:all

2. Seed the Database

Populate MongoDB with default system configurations, 4 security operators, 3 display screens, and 20 notice records:

npm run seed

3. Launch Development Servers

Start both the Express API (port 5000) and the Vite React server (port 3000) concurrently:

npm run dev

🐳 Getting Started (Docker Compose)

To spin up the entire application stack (MongoDB, Express Backend, and React Frontend) inside Docker container isolated environments:

docker-compose up --build

Note: Vite dev server will bind to port 3000 and Express API to port 5000 on your host system.


🧪 Running the Test Suite

Execute the integration and unit tests (covering OTP logins, notice moderation, and frontend badge component rendering):

npm test

🔑 Seeded Demo Accounts

Use these pre-seeded emails/phones to request OTPs on the login screen. The dev console outputs the 6-digit OTP code in terminal and displays an Autofill Helper button on the UI.

Role Email Identifier Phone Number Access Scope
SuperAdmin admin@noticeboard.com 9876543210 Full controls, sliders, operators creation
Admin moderator@noticeboard.com 9876543211 Moderate pending review queue, audit logs
Editor editor@noticeboard.com 9876543212 Compose notice broadcasts & SMS mock webhooks
Viewer viewer@noticeboard.com 9876543213 Read-only access to history and charts

🖥️ Screen Simulator Channels

Predefined ESP32 digital displays seeded in the database:

  • Main Entrance: Code BOARD01 -> URL: http://localhost:3000/simulator/BOARD01
  • Library Block: Code BOARD02 -> URL: http://localhost:3000/simulator/BOARD02
  • Seminar Hall: Code BOARD03 -> URL: http://localhost:3000/simulator/BOARD03