Skip to content

Aula is an interactive online quiz and learning platform built with Next.js, Node.js, and Firebase. It features multiple question formats, real-time progress tracking, and anti-cheating measures like focus detection and timed assessments. Designed with a clean, responsive UI using TailwindCSS, Aula delivers a secure, engaging, and dynamic learning.

Notifications You must be signed in to change notification settings

tejasnayak25/aula

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

71 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Quiz App (aula)

A lightweight quiz/form web app built with Express, Firebase, and Tailwind CSS.

Table of contents

  • About
  • Features
  • Tech stack
  • Prerequisites
  • Quick start (PowerShell)
  • Development
  • Production build
  • Firebase / server notes
  • Project structure
  • Deployment
  • Contributing
  • License

About

This repository contains a small quiz/form application (internal name: aula) with a server (Express) and static HTML pages, designed to be deployed as a simple Node/Express API or serverless endpoint (the project includes vercel.json).

Features

  • Single-page HTML views for login, signup, dashboard, forming quizzes and taking quizzes
  • Express server entrypoint at api/index.js
  • Tailwind CSS for styling (input at css/input.css, output at css/output.css)
  • Firebase + Firebase Admin used for authentication and backend data
  • Service worker support via service-worker.js

Tech stack

  • Node.js (CommonJS)
  • Express
  • Firebase (client and admin)
  • Tailwind CSS (v4)
  • DaisyUI

Prerequisites

  • Node.js (14+ recommended) and npm
  • A Firebase project (if you want authentication / database)

Quick start (PowerShell)

  1. Install dependencies
npm install
  1. Start Tailwind in watch mode (rebuilds css/output.css from css/input.css)
npm run tailwindcss
  1. In another terminal, start the server (uses nodemon)
npm run start

Open http://localhost:3000 (or the port configured in api/index.js) in your browser.

Notes:

  • The start script invokes nodemon api/index.js. If nodemon is not installed globally it should still work because nodemon is referenced via the script (install it locally or globally if needed).

Development

  • Edit the HTML under api/html/ and api/ or the top-level api/home.html for server-side routes.
  • Frontend JS lives in js/ (for example js/account.js, js/utils.js).
  • CSS source is css/input.css; the generated CSS is css/output.css.

Production CSS build (minified):

npx tailwindcss -i ./css/input.css -o ./css/output.css --minify

Firebase / server notes

  • The project depends on firebase and firebase-admin. You will need to provide Firebase configuration for the frontend (usually via a firebaseConfig object included in your client code) and a service account key or proper environment variables for firebase-admin when running server-side features.
  • Common approaches:
    • Place your Firebase client config in a safe client-side file or a build-time env and import it into the pages that need it.
    • For server/admin usage, set GOOGLE_APPLICATION_CREDENTIALS to point to a service account JSON file, or load the credentials from environment variables.

If you don't plan to use Firebase, remove firebase/firebase-admin usage or mock them in development.

Project structure (overview)

  • api/ - Express entry (api/index.js) and server-side HTML
    • html/ - various HTML views used by the app
  • css/ - Tailwind input and generated output
  • js/ - frontend JavaScript (account, utils, etc.)
  • images/ - logos and assets
  • service-worker.js - offline/service worker script
  • vercel.json - Vercel deployment configuration

Deployment

This project includes vercel.json and is friendly to Vercel deployments. Alternatively you can deploy the Express app to any Node hosting provider (Heroku, Render, DigitalOcean App Platform).

On Vercel:

  1. Push the repository to a Git provider (GitHub, GitLab, etc.)
  2. Import the repo in the Vercel dashboard
  3. Set any required environment variables (Firebase credentials, API keys)

Contributing

Contributions are welcome. Keep changes small and focused. If you add functionality that requires environment variables or external services, document them in the README.

Troubleshooting

  • If npm run start fails because nodemon is missing, run npm i -D nodemon or install it globally.
  • If Tailwind output isn't updating, ensure npm run tailwindcss is running and that css/input.css contains the Tailwind directives.

License

This project lists ISC in package.json; confirm or change as needed.

Author

Tejas Nayak

About

Aula is an interactive online quiz and learning platform built with Next.js, Node.js, and Firebase. It features multiple question formats, real-time progress tracking, and anti-cheating measures like focus detection and timed assessments. Designed with a clean, responsive UI using TailwindCSS, Aula delivers a secure, engaging, and dynamic learning.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published