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.
- User Registration & Login: Secure Firebase authentication
- Email Verification: Automated email verification for new users
- Session Management: Persistent user sessions with logout functionality
- 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
- 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
- Experiment 1-10: Various electronics and communication concepts
- ASK Modulation (Exp 2): Amplitude Shift Keying simulation
- BFSK Modulation (Exp 3): Binary Frequency Shift Keying
- PSK Modulation (Exp 4): Phase Shift Keying implementation
- Advanced Signal Processing (Exp 7, 9): Complex signal analysis
- Python 3.7+
- Firebase account and project setup
- Required Python packages (see requirements.txt)
# 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- Open your browser and navigate to
http://localhost:5000 - Register a new account or login with existing credentials
- Explore experiments and take quizzes
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
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"
}# Set Flask secret key
export FLASK_SECRET_KEY="your-secret-key"
# Set Flask environment
export FLASK_ENV="development" # or "production"- Parameters: Carrier amplitude, frequency, pulse signal frequency
- Output: Real-time waveform generation and analysis
- Learning Outcomes: Understanding amplitude modulation principles
- Parameters: Sample rate, bit rate, frequencies, duration, amplitude
- Features: Dual-frequency signal generation
- Applications: Digital communication systems
- Parameters: Carrier signal properties, pulse characteristics
- Simulation: Phase-shifted signal visualization
- Use Cases: Advanced digital modulation techniques
- 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
- Basic electronics principles
- Digital signal processing
- Modulation techniques
- Communication systems
- Signal analysis
- Firebase Authentication: Industry-standard security
- Session Management: Secure user session handling
- Input Validation: Form data sanitization
- Error Handling: Graceful error management
- 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
- 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)
- Lazy Loading: Experiments load on-demand
- Session Caching: Reduced database queries
- Optimized Routes: Efficient URL routing
- Static File Serving: Fast asset delivery
- Fork the repository
- Create a feature branch (
git checkout -b feature/new-experiment) - Implement your changes
- Add tests for new functionality
- Commit changes (
git commit -am 'Add new experiment module') - Push to branch (
git push origin feature/new-experiment) - Open a Pull Request
- Follow PEP 8 Python style guide
- Add docstrings to all functions
- Include unit tests for new experiments
- Update documentation for new features
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
- Some simulation modules require optimization for large datasets
- Mobile interface needs responsive design improvements
- Advanced experiments may require additional computational resources
This project is licensed under the MIT License - see the LICENSE file for details.
- Electronics and Communication Engineering curriculum standards
- Digital signal processing research community
- Flask and Firebase development communities
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.
flaskpythonfirebasepyrebasesqliteweb-application
virtual-laboratorye-learningeducation-technologyengineering-educationinteractive-learningonline-experiments
digital-signal-processingask-modulationpsk-modulationbfsk-modulationelectronics-engineeringcommunication-systemssignal-processing
quiz-systemuser-authenticationsimulationsreal-time-visualizationlaboratory-managementacademic-platform
web-based-simulationeducational-softwarelaboratory-automationstudent-assessmentexperiment-simulation
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