Skip to content

Flask-based virtual laboratory platform for Electronics & Communication Engineering featuring interactive experiments (ASK/PSK/BFSK modulation), Firebase authentication, real-time signal processing simulations, and comprehensive quiz system for engineering students.

Notifications You must be signed in to change notification settings

Aditya3034/Virtual_LAB

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

55 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ§ͺ VLabs - Electronics & Communication Virtual Laboratory

A comprehensive Flask-based virtual laboratory platform for Electronics and Communication Engineering experiments, featuring digital signal processing simulations, interactive quizzes, and hands-on learning modules.

🌟 Features

πŸ” Authentication System

  • User Registration & Login: Secure Firebase authentication
  • Email Verification: Automated email verification for new users
  • Session Management: Persistent user sessions with logout functionality

πŸ§ͺ Virtual Experiments

  • 10 Interactive Experiments: Complete lab simulations with real-time results
  • Digital Signal Processing: ASK, PSK, and BFSK modulation techniques
  • Parameter Customization: Adjustable signal parameters for comprehensive learning
  • Visual Simulations: Interactive waveform generation and analysis

πŸ“ Assessment System

  • 10 Comprehensive Quizzes: Topic-wise assessments with instant scoring
  • Real-time Feedback: Immediate score calculation and result display
  • Progress Tracking: Monitor learning progress across different modules

πŸ”¬ Supported Experiments

  1. Experiment 1-10: Various electronics and communication concepts
  2. ASK Modulation (Exp 2): Amplitude Shift Keying simulation
  3. BFSK Modulation (Exp 3): Binary Frequency Shift Keying
  4. PSK Modulation (Exp 4): Phase Shift Keying implementation
  5. Advanced Signal Processing (Exp 7, 9): Complex signal analysis

πŸš€ Quick Start

Prerequisites

  • Python 3.7+
  • Firebase account and project setup
  • Required Python packages (see requirements.txt)

Installation

# Clone the repository
git clone https://github.com/your-username/vlabs-extc.git
cd vlabs-extc

# Create virtual environment
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

# Install dependencies
pip install flask pyrebase sqlite3 collections

# Set up Firebase configuration
# Update the config dictionary in app.py with your Firebase credentials

# Run the application
python app.py

Access the Application

  • Open your browser and navigate to http://localhost:5000
  • Register a new account or login with existing credentials
  • Explore experiments and take quizzes

πŸ—οΈ Project Structure

vlabs-extc/
β”œβ”€β”€ app.py                 # Main Flask application
β”œβ”€β”€ ASK.py                 # Amplitude Shift Keying module
β”œβ”€β”€ PSK.py                 # Phase Shift Keying module  
β”œβ”€β”€ BFSK.py                # Binary FSK module
β”œβ”€β”€ templates/
β”‚   β”œβ”€β”€ index.html         # Landing page
β”‚   β”œβ”€β”€ loginPage.html     # Authentication page
β”‚   β”œβ”€β”€ extc.html          # Main experiments dashboard
β”‚   β”œβ”€β”€ experiments.html   # Experiments listing
β”‚   β”œβ”€β”€ exp1.html - exp10.html    # Individual experiments
β”‚   β”œβ”€β”€ sim1.html - sim10.html    # Simulation interfaces
β”‚   └── quiz1.html - quiz10.html  # Quiz templates
β”œβ”€β”€ static/
β”‚   β”œβ”€β”€ css/              # Stylesheets
β”‚   β”œβ”€β”€ js/               # JavaScript files
β”‚   └── images/           # Static images
└── requirements.txt       # Python dependencies

πŸ”§ Configuration

Firebase Setup

Update the Firebase configuration in app.py:

config = {
    "apiKey": "your-api-key",
    "authDomain": "your-domain.firebaseapp.com",
    "projectId": "your-project-id",
    "storageBucket": "your-bucket.appspot.com",
    "messagingSenderId": "your-sender-id",
    "appId": "your-app-id",
    "measurementId": "your-measurement-id",
    "databaseURL": "your-database-url"
}

Environment Variables

# Set Flask secret key
export FLASK_SECRET_KEY="your-secret-key"

# Set Flask environment
export FLASK_ENV="development"  # or "production"

πŸ“Š Experiment Details

ASK Modulation (Experiment 2)

  • Parameters: Carrier amplitude, frequency, pulse signal frequency
  • Output: Real-time waveform generation and analysis
  • Learning Outcomes: Understanding amplitude modulation principles

BFSK Modulation (Experiment 3)

  • Parameters: Sample rate, bit rate, frequencies, duration, amplitude
  • Features: Dual-frequency signal generation
  • Applications: Digital communication systems

PSK Modulation (Experiment 4)

  • Parameters: Carrier signal properties, pulse characteristics
  • Simulation: Phase-shifted signal visualization
  • Use Cases: Advanced digital modulation techniques

🎯 Quiz System

Features

  • Automated Scoring: Real-time score calculation (0-5 points per quiz)
  • Diverse Topics: Covering all experiment areas
  • Instant Feedback: Immediate results display
  • Multiple Choice: User-friendly question format

Sample Quiz Topics

  • Basic electronics principles
  • Digital signal processing
  • Modulation techniques
  • Communication systems
  • Signal analysis

πŸ”’ Security Features

  • Firebase Authentication: Industry-standard security
  • Session Management: Secure user session handling
  • Input Validation: Form data sanitization
  • Error Handling: Graceful error management

🚧 Development Roadmap

  • Mobile Responsiveness: Optimize for mobile devices
  • Advanced Analytics: Detailed progress tracking
  • More Experiments: Expand to 20+ experiments
  • Real-time Collaboration: Multi-user lab sessions
  • Export Functionality: Download results and reports
  • API Integration: RESTful API for external integrations

πŸ› οΈ Technologies Used

  • Backend: Flask (Python)
  • Authentication: Firebase/Pyrebase
  • Database: SQLite3
  • Frontend: HTML5, CSS3, JavaScript
  • Signal Processing: Custom Python modules (ASK, PSK, BFSK)
  • Deployment: Flask development server (configurable for production)

πŸ“ˆ Performance Optimizations

  • Lazy Loading: Experiments load on-demand
  • Session Caching: Reduced database queries
  • Optimized Routes: Efficient URL routing
  • Static File Serving: Fast asset delivery

🀝 Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/new-experiment)
  3. Implement your changes
  4. Add tests for new functionality
  5. Commit changes (git commit -am 'Add new experiment module')
  6. Push to branch (git push origin feature/new-experiment)
  7. Open a Pull Request

Development Guidelines

  • Follow PEP 8 Python style guide
  • Add docstrings to all functions
  • Include unit tests for new experiments
  • Update documentation for new features

πŸ“š Educational Impact

This platform serves as a comprehensive learning tool for:

  • Engineering Students: Hands-on experience with digital systems
  • Educators: Ready-to-use lab curriculum
  • Researchers: Foundation for advanced signal processing studies
  • Industry Professionals: Refresher training and skill development

⚠️ Known Issues & Limitations

  • Some simulation modules require optimization for large datasets
  • Mobile interface needs responsive design improvements
  • Advanced experiments may require additional computational resources

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ™ Acknowledgments

  • Electronics and Communication Engineering curriculum standards
  • Digital signal processing research community
  • Flask and Firebase development communities

GitHub Repository Description

Virtual Laboratory platform for Electronics & Communication Engineering with Flask, Firebase authentication, digital signal processing experiments (ASK/PSK/BFSK), interactive quizzes, and real-time simulations for hands-on learning.

Recommended Topics/Tags

Core Technologies

  • flask
  • python
  • firebase
  • pyrebase
  • sqlite
  • web-application

Educational Focus

  • virtual-laboratory
  • e-learning
  • education-technology
  • engineering-education
  • interactive-learning
  • online-experiments

Electronics & Communication

  • digital-signal-processing
  • ask-modulation
  • psk-modulation
  • bfsk-modulation
  • electronics-engineering
  • communication-systems
  • signal-processing

Features

  • quiz-system
  • user-authentication
  • simulations
  • real-time-visualization
  • laboratory-management
  • academic-platform

Technical Implementation

  • web-based-simulation
  • educational-software
  • laboratory-automation
  • student-assessment
  • experiment-simulation

Repository Settings

Primary Language: Python
License: MIT License (recommended for educational projects)
Include in search: βœ… Enabled
Discussions: βœ… Enable for educational discussions
Issues: βœ… Enable for bug reports and feature requests
Wiki: βœ… Enable for detailed documentation

About

Flask-based virtual laboratory platform for Electronics & Communication Engineering featuring interactive experiments (ASK/PSK/BFSK modulation), Firebase authentication, real-time signal processing simulations, and comprehensive quiz system for engineering students.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • HTML 72.9%
  • CSS 20.8%
  • Python 6.3%