Skip to content

About

Fast and lightweight Collage LMS course explorer to search courses by ID or name and quickly access official course and module pages

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Latest commit

 

History

16 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📚 NCU Course Explorer

Live Demo GitHub Repository HTML5 CSS3 JavaScript

A lightweight and fast web application that helps users quickly search NCU LMS courses using either the Course ID or Course Name and instantly access the official course pages.


🌐 Live Demo

🚀 Website: https://nishantrajora.github.io/Course-Explorer/

💻 GitHub Repository: https://github.com/NishantRajora/Course-Explorer


✨ Features

  • 🔍 Search by Course ID
  • 📚 Search by Course Name
  • ⚡ Instant search with optimized performance
  • 📖 Open the official course page
  • 📂 Open the course Modules page
  • 🔗 Copy Course URL
  • 📋 Copy Modules URL
  • 📱 Fully responsive design
  • 🎨 Clean and lightweight interface
  • 🚀 Built with pure HTML, CSS and JavaScript
  • 📄 Reads course data directly from a CSV file
  • 📊 Shows a shared total of searches

📸 Preview

Search any course by entering its Course ID or Course Name.

Each result provides:

  • 📖 Open Course
  • 📂 Open Modules
  • 🔗 Copy Course Link
  • 📋 Copy Modules Link

📂 Project Structure

Course-Explorer/
│
├── index.html
├── style.css
├── script.js
├── course.csv
└── README.md

🚀 Getting Started

Clone the repository

git clone https://github.com/NishantRajora/Course-Explorer.git

Open the project

Open index.html directly in your browser.

Or run a local development server:

python -m http.server

Then visit:

http://localhost:8000

📄 Course Data Format

The project loads course information from course.csv.

Example:

2963,Basic Computer Skills for Professionals
3011,Data Structures
4210,Machine Learning

Format:

CourseID,CourseName

🛠️ Built With

  • HTML5
  • CSS3
  • JavaScript (ES6)
  • CSV

No frameworks or external libraries are required.

📊 Configure the Search Counter

GitHub Pages is static, so the shared search total is stored in Supabase.

  1. Create a Supabase project at https://supabase.com.
  2. Open SQL Editor and run:
create table public.site_stats (
    id boolean primary key default true,
    searches bigint not null default 0,
    constraint one_stats_row check (id)
);

insert into public.site_stats (id) values (true);

create or replace function public.get_search_count()
returns bigint
language sql
security definer
set search_path = public
as $$
    select searches from public.site_stats where id = true;
$$;

create or replace function public.increment_search_count()
returns bigint
language sql
security definer
set search_path = public
as $$
    update public.site_stats
    set searches = searches + 1
    where id = true
    returning searches;
$$;

grant execute on function public.get_search_count() to anon, authenticated;
grant execute on function public.increment_search_count() to anon, authenticated;
  1. In script.js, replace YOUR_SUPABASE_PROJECT_URL with the project URL and YOUR_SUPABASE_ANON_KEY with the public anon key from Project Settings > API.
  2. Commit and push the changes. The counter will then be shared by every visitor to the GitHub Pages site.

The anon key is intended for browser use. Do not put a Supabase service-role key in this repository. This counts each non-empty search after the input debounce, not every individual keystroke.


⚡ Performance

This project is designed to be lightweight and fast.

  • Optimized DOM rendering
  • Debounced search input
  • Fast CSV parsing
  • Responsive UI
  • Minimal resource usage
  • No heavy animations or frameworks

⚠️ Disclaimer

This website is an independent utility created for educational convenience.

  • It only generates links to the official NCU LMS using Course IDs.
  • It does not host, copy, modify, or redistribute any course content.
  • All course materials remain the property of their respective owners.
  • Access to courses depends on the permissions and authentication provided by the official NCU LMS.

🤝 Contributing

Contributions are welcome.

  1. Fork the repository.
  2. Create a new feature branch.
  3. Commit your changes.
  4. Push to your fork.
  5. Open a Pull Request.

📌 Future Improvements

  • ⭐ Favorites
  • 📜 Search history
  • 🌙 Dark mode
  • 🔖 Bookmark frequently used courses
  • 📊 Course statistics
  • ⌨️ Keyboard shortcuts
  • 🔍 Advanced search filters

📜 License

This project is licensed under the MIT License.


👨‍💻 Author

Nishant Rajora


If you found this project useful, please consider giving it a ⭐ on GitHub.

About

Fast and lightweight Collage LMS course explorer to search courses by ID or name and quickly access official course and module pages

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages