Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 

Repository files navigation

Nine-Tigers-Online-Platform

Platform Overview

The Nine Tigers Online Platform is a comprehensive web-based system designed specifically for Kung Fu school members. Built with Node.js and Express.js, this platform emphasizes robust server-side functionality while providing authenticated access to learning resources, instructional videos, community discussions, and school announcements through a modern React front-end interface.

Core Features

Authentication and Authorization

The platform implements secure user authentication using JWT,for React integration, to protect member information and ensure only authorized individuals can access the system. Users create accounts with credentials that are validated against the database, with authorization levels controlling access based on user roles.

User Roles and Privileges

  • Members: Standard users who can access learning resources, watch videos, participate in discussions, and view announcements
  • Administrators: Elevated privileges allowing them to manage content, moderate discussions, upload videos, create announcements, and manage user accounts

Home Page with Announcement Board

The home page serves as the central dashboard featuring an announcement board where administrators can post important updates, schedule changes, upcoming events, and school news. Members can view these announcements upon login to stay informed about school activities.

Learning Resources Library

A comprehensive repository of training materials including technique guides, form instructions, philosophy readings, and supplementary educational content. Resources are organized by skill level and category for easy navigation.

Video Library

An extensive collection of instructional videos covering various aspects of Kung Fu training, including forms, techniques, sparring drills, and demonstrations. Videos are organized by difficulty level and topic, with search and filtering capabilities.

Discussion Forums

Interactive discussion boards where members can ask questions, share experiences, discuss techniques, and engage with fellow students. Administrators moderate discussions to maintain a positive learning environment.

Personal Profile Management

Members can input and manage their personal information including contact details, training history, belt level, and preferences. This information is stored securely in the database and protected through authentication mechanisms.

Technical Architecture

Server-Side Components (Primary Focus)

Built with Node.js and Express.js with modular routing:

  • Express.js server handles all business logic and data processing
  • RESTful API endpoints serve JSON data for client consumption
  • GraphQL endpoints provide flexible query capabilities
  • JWT manages authentication and session handling
  • Server-side validation of all user inputs and requests
  • Authorization middleware enforces role-based access control

Database Structure and Persistence

Data persistence implemented using:

  • MongoDB with Mongoose: NoSQL document database with ODM for schema modeling

Database relationships:

  • One-to-Many: Users to Orders, Categories to Resources, Users to Discussion Posts
  • Many-to-Many: Users to Courses (enrollment), Videos to Categories, Users to Roles

REST API Endpoints

JSON-based RESTful API endpoints include:

  • GET /api/products - List all products/resources
  • GET /api/products/:id - Get specific product details
  • GET /api/products/search?name=keyword - Search products by name
  • GET /api/products/price?min=X&max=Y - Filter products by price range
  • POST /api/products - Create new product (admin)
  • PUT /api/products/:id - Update product (admin)
  • DELETE /api/products/:id - Delete product (admin)
  • GET /api/users - List all users (admin)
  • GET /api/orders - Get user's orders
  • POST /api/orders - Create new order

Note: REST endpoints are tested in Postman without authentication requirements for testing purposes.

GraphQL Endpoints

GraphQL API provides flexible querying capabilities:

  • Query products with customizable fields
  • Filter and search operations
  • Nested queries for related data
  • Mutations for creating and updating data

GraphQL endpoints are tested using Apollo Server playground.

Client-Side Components (React)

Modern React-based front-end:

  • Component-based architecture for reusable UI elements
  • React Router for client-side navigation
  • State management for application data
  • Responsive design for desktop and mobile devices
  • Consumes REST and GraphQL APIs from the Express backend

Security Implementation

  • Password Protection: User passwords are hashed and stored securely
  • Session Management: Passport.js handles secure session management or JWT tokens for React
  • Input Validation: Server-side validation prevents security vulnerabilities
  • Role-Based Access Control: Authorization middleware ensures users can only access appropriate content

Key Technologies

  • Backend: Node.js with Express.js framework
  • Database: MongoDB with Mongoose
  • Authentication: JWT (JSON Web Tokens)
  • API: RESTful endpoints (JSON) and GraphQL
  • Front-end: React with modern JavaScript (ES6+)
  • Testing: Postman for REST API, Apollo Server for GraphQL

User Experience Flow

  1. Login: Users authenticate through React login form, credentials validated by Express backend
  2. Home Dashboard: After successful authentication, React displays home page with current announcements fetched from API
  3. Navigation: React Router enables seamless navigation to learning resources, videos, or discussions
  4. Content Access: React components fetch data from REST/GraphQL endpoints based on user permissions
  5. Profile Management: Users update personal information through React forms, processed by Express backend
  6. Admin Functions: Administrators access additional React components for content and user management

Administrative Capabilities

Administrators have elevated privileges to perform essential platform management tasks through dedicated admin interfaces:

  • Upload and organize learning resources and videos
  • Create and manage announcements on the home page
  • Moderate discussion forums and manage posts
  • Manage user accounts and permissions
  • View platform analytics and user engagement metrics
  • Configure platform settings and customize content organization

Benefits

  • Centralized Access: All training materials and resources accessible through unified API
  • Flexible Learning: Members can access content anytime, anywhere via responsive React interface
  • Community Engagement: Discussion forums foster interaction and knowledge sharing
  • Up-to-Date Information: Real-time announcement updates through API
  • Secure Environment: JWT ensures member privacy and data protection
  • Scalable Platform: Node.js architecture can grow with the school's expanding membership
  • Modern Architecture: Separation of concerns with React front-end and Express backend enables maintainability and scalability

About

This is a comprehensive web-based system designed for a Kung Fu school. Built with Node.js and Express.js, this platform emphasizes robust server-side functionality while providing authenticated access to learning resources, instructional videos, community discussions, and announcements through a modern React front-end interface.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors