Skip to content

git-maks/st-Quizzer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

StreamQuiz

A web-based quiz application built with Flask that supports user authentication, quiz management, and progress tracking.

Features

  • User Authentication: Secure login system with user registration
  • Quiz Management: Upload and manage quizzes via CSV files
  • Interactive Quiz Engine: Multiple choice questions with immediate feedback
  • Progress Tracking: Track quiz history and scores
  • Admin Features: Administrative controls for user and quiz management
  • Responsive UI: Clean, modern web interface

Project Structure

StreamQuiz/
├── app.py                 # Main Flask application
├── config.py             # Configuration settings
├── requirements.txt      # Python dependencies
├── auth/                 # Authentication module
│   ├── __init__.py
│   └── authentication.py
├── quiz/                 # Quiz engine module
│   ├── __init__.py
│   ├── csv_handler.py
│   └── quiz_engine.py
├── data/                 # Data storage
│   ├── auth_config.yaml  # Authentication configuration
│   ├── users.json        # User data
│   └── user_quizzes/     # User quiz progress
├── static/               # CSS styles
│   ├── quiz_history.css
│   └── styles.css
├── sample_quizzes/       # Example quiz files
│   ├── General Knowledge.csv
│   └── Programming Basics.csv
└── ui/                   # UI templates (if any)

Installation

  1. Clone the repository:

    git clone https://github.com/git-maks/st-quizzer.git
    cd st-quizzer
  2. Create a virtual environment (recommended):

    python -m venv venv
    source venv/bin/activate  # On Windows: venv\Scripts\activate
  3. Install dependencies:

    pip install -r requirements.txt
  4. Run the application:

    python app.py
  5. Access the application: Open your browser and navigate to http://localhost:5000

Usage

Creating Quizzes

Quizzes are created using CSV files with the following format:

Question,Option A,Option B,Option C,Option D,Correct Answer
What is 2+2?,3,4,5,6,B
  • Each row represents a question
  • The first column is the question text
  • Columns 2-5 are the multiple choice options
  • The last column indicates the correct answer (A, B, C, or D)

User Management

  • Users can register and log in to track their progress
  • Admin users have additional privileges for managing quizzes and users
  • Quiz history and scores are automatically saved

Configuration

The application uses several configuration files:

  • config.py: Main application configuration
  • data/auth_config.yaml: Authentication settings
  • data/users.json: User database (created automatically)

Development

Adding New Features

  1. Quiz Engine: Modify files in the quiz/ directory
  2. Authentication: Update files in the auth/ directory
  3. UI/Styles: Edit CSS files in the static/ directory
  4. Main App: Update app.py for new routes or functionality

Running in Development Mode

export FLASK_ENV=development  # On Windows: set FLASK_ENV=development
python app.py

Contributing

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature-name
  3. Make your changes and commit: git commit -m 'Add some feature'
  4. Push to the branch: git push origin feature-name
  5. Submit a pull request

License

This project is open source and available under the MIT License.

Support

If you encounter any issues or have questions, please open an issue on GitHub.

About

Sleek, engaging quiz app I built to make learning and knowledge checks feel fast, fun, and genuinely addictive for users - including me.

Topics

Resources

Stars

Watchers

Forks

Contributors