Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 

Repository files navigation

πŸ“š NovaLC β€” Nova Learning Center

A web-based quiz management platform with an AI-powered assistant, built as a thesis project. NovaLC lets students and educators create, share, and take quizzes β€” all in a clean, modern interface with dark mode support.


✨ Features

  • User Authentication β€” Register and log in with secure bcrypt-hashed passwords
  • Dashboard β€” View personal stats: quiz sets created, quizzes taken, average score, and best score
  • Quiz Builder β€” Create multi-question quiz sets with multiple-choice answers, subject tags, and public/private visibility
  • Quiz Discovery β€” Browse and take publicly shared quizzes from other users
  • Nova Assistant β€” Floating AI chatbot powered by a local Python backend for in-app help
  • Dark Mode β€” System-aware theme toggle across all pages
  • Admin Role β€” Role-based access control (is_admin flag) for privileged users

πŸ› οΈ Tech Stack

Layer Technology
Frontend HTML, Tailwind CSS, Vanilla JS
Backend PHP (REST API)
Database MySQL via XAMPP / phpMyAdmin
AI Chatbot Python Flask server (/ask endpoint)
Fonts Plus Jakarta Sans, Inter (Google Fonts)

πŸ“ Project Structure

NovaLC/
β”œβ”€β”€ index.html                  # Landing page
β”œβ”€β”€ api/
β”‚   β”œβ”€β”€ config.php              # Database connection
β”‚   β”œβ”€β”€ auth/
β”‚   β”‚   β”œβ”€β”€ login.php           # POST /api/auth/login
β”‚   β”‚   β”œβ”€β”€ register,php        # POST /api/auth/register
β”‚   β”‚   β”œβ”€β”€ logout.php          # Session logout
β”‚   β”‚   └── session.php         # Session check
β”‚   β”œβ”€β”€ dashboard/
β”‚   β”‚   └── stats.php           # GET user stats
β”‚   └── quiz/
β”‚       β”œβ”€β”€ create.php          # POST create quiz set
β”‚       └── get_mine.php        # GET user's quiz sets
β”œβ”€β”€ assets/
β”‚   β”œβ”€β”€ css/
β”‚   β”‚   β”œβ”€β”€ style.css           # Custom styles
β”‚   β”‚   └── tailwind.min.css    # Tailwind (local fallback)
β”‚   └── js/
β”‚       β”œβ”€β”€ auth.js             # Login/register logic
β”‚       β”œβ”€β”€ chatbot.js          # Nova Assistant chatbot UI
β”‚       β”œβ”€β”€ main.js             # General utilities
β”‚       └── theme.js            # Dark mode toggle
└── pages/
    β”œβ”€β”€ login.html              # Login & registration page
    β”œβ”€β”€ dashboard.html          # User dashboard
    └── quiz-create.html        # Quiz creation form

βš™οΈ Setup & Installation

Prerequisites

  • XAMPP (Apache + MySQL)
  • PHP 7.4+
  • A Python environment for the Nova Assistant chatbot (optional)

Steps

  1. Clone the repository

    git clone https://github.com/your-username/NovaLC.git
  2. Move to your XAMPP htdocs folder

    C:/xampp/htdocs/NovaLC/
    
  3. Create the database

    • Open phpMyAdmin (http://localhost/phpmyadmin)
    • Create a database named nova_lc
    • Import the SQL schema (if provided) or create the following tables manually:
      • users β€” id, username, email, password, is_admin
      • quiz_sets β€” id, user_id, title, description, subject, is_public
      • questions β€” id, quiz_set_id, question_text, choices (JSON), correct_index
      • attempts β€” id, user_id, quiz_set_id, score, total
  4. Configure the database in api/config.php:

    define('DB_HOST', 'localhost');
    define('DB_USER', 'root');
    define('DB_PASS', '');        // Set your MySQL password if any
    define('DB_NAME', 'nova_lc');
  5. Start Apache and MySQL in XAMPP Control Panel.

  6. Open the app at http://localhost/NovaLC/

Nova Assistant (Chatbot)

The chatbot connects to a local Python Flask server. Start your backend and update the API URL in assets/js/chatbot.js:

const NOVA_API_URL = "http://127.0.0.1:5000/ask";
// Or replace with your ngrok URL for demos:
// const NOVA_API_URL = "https://your-id.ngrok-free.app/ask";

πŸ” Default Credentials

No default credentials are seeded. Register a new account via the Sign Up page. To make a user an admin, manually set is_admin = 1 in the users table via phpMyAdmin.


🚧 Status

This project is currently under active development as a thesis. Some features (e.g., Discover page, Progress tracking) are still being implemented.


πŸ‘¨β€πŸ’» Authors

  • [Your Name] β€” Developer
  • Built as a thesis project

πŸ“„ License

For academic use only. All rights reserved.

About

yes mao ni sa thesis if all things go wrong then mag xamp rata but if wla then gooo (https://novalc.vercel.app/ )

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages