A Django application that processes Zoom meeting data, matching registration and participant files to track attendance and participation. The dashboard uses AI models via OpenAI to process and format data, which is stored in a PostgreSQL database and presented through a user-friendly interface.
- User authentication system
- Upload and process Zoom registration and participant files
- Automated matching of registration and participant data
- AI-powered data processing via OpenAI API
- Asynchronous processing with Celery and Redis
- Visualization dashboard
- Ability to exclude specific individuals from analysis
- Backend: Python/Django
- Frontend: JavaScript, Bootstrap 5
- Database: PostgreSQL
- Task Queue: Celery
- Message Broker: Redis
- AI Integration: OpenAI API
- Deployment: Railway
- Python 3.8+
- PostgreSQL
- Redis
-
Clone the repository:
git clone https://github.com/shaisabm/Data-Training.git cd DataTraining -
Create and activate a virtual environment:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate -
Install dependencies:
pip install -r requirements.txt
-
Create a
.envfile with required variables:SECRET_KEY=your_django_secret_key POSTGRES_NAME=your_db_name POSTGRES_USER=your_db_user POSTGRES_PASSWORD=your_db_password POSTGRES_HOST=localhost POSTGRES_PORT=5432 REDIS_URL=redis://localhost:6379 -
Run migrations:
python manage.py migrate
-
Create a superuser:
python manage.py createsuperuser
-
Start the development server:
python manage.py runserver
-
In a separate terminal, start Celery worker:
celery -A DataTraining worker --loglevel=info
- Access the application at
http://localhost:8000 - Log in with your credentials
- Upload Zoom registration and participant files
- Files should contain an 11-digit meeting ID for automatic matching
- The system will:
- Match registration and participant data
- Process data using AI models
- Display processed information in the dashboard
The application expects Zoom CSV files with:
- Registration data containing attendee information
- Participant data with meeting attendance details
- Filenames must contain an 11-digit meeting ID (e.g.,
registration_93654500555.csv)
dashboard/: Main application with views, models, and templatesdashboard/data_processing/: AI processing and data formattingdashboard/spreadsheet_processing/: File handling and celery tasksDataTraining/: Project settings and configuration
The application is configured for Railway deployment.
The railway.json file specifies:
- Nixpacks as the builder
- Start command to activate virtual environment, collect static files, run migrations, and start Gunicorn
- Automatic restart on failure
For production deployment, set:
IN_PRODUCTION=TrueSECRET_KEY- Database credentials (
POSTGRES_NAME,POSTGRES_USER, etc.) REDIS_URLfor Celery
Copyright © 2024 New York Institute of Technology (NYIT). All rights reserved.
This software is the property of New York Institute of Technology. Unauthorized copying, modification, distribution, or use of this software, via any medium, is strictly prohibited without the express written permission of New York Institute of Technology.
For permission requests, please contact New York Institute of Technology.