ClassCrew Daily Quotes page, live at avirajsalunkhe.github.io/ClassCrew
This is a simple standalone HTML page that displays a daily motivational quote ("Today's Thought") on an interactive, classroom-themed blackboard. It adds a warm, familiar identity to the ClassCrew project.
- Blackboard header: The board carries the school name in Marathi (जिल्हा परिषद प्राथमिक शाळा, रितोंड वस्ती, रोपळे बु.), tying the project to its real-world, community-school roots.
- Today's Thought: A chalk-written motivational quote is displayed in a dashed chalk frame and attributed to ClassCrew. The board shows an Updated timestamp and a live Next thought in countdown, so the quote refreshes automatically on a timed cycle.
- Interactive chalkboard: Visitors can pick a chalk colour (white, yellow, pink, blue) or the duster from the tray, then hold and drag on the blackboard to draw or erase. A Reset board button restores the original board.
- Hanging photo frames: Two framed cards hang from the board. The left one links to the author's LeetCode profile and the right one to the author's GitHub profile (Aviraj Salunkhe).
- Visual design: A cream wall, a terracotta stripe and a teal wainscot surround a wooden-framed board, with a chalk-style handwritten font and the tagline Knowledge · Practice · Growth along the bottom edge.
A Secure, Distributed, Cloud-Integrated Learning Management System with Encrypted File Storage.
The Digital Coaching DFS Platform is a modular, role-driven digital coaching ecosystem designed for institutes and academic organizations. It integrates attendance tracking, exam management, fee processing, encrypted communication, and a distributed file system powered by Google Drive.
Built with scalable and secure architecture principles, the system ensures:
- Cloud-backed distributed storage
- Role-based dashboards
- Asynchronous background processing
- Secure OAuth authentication
- Real-time academic workflows
- Admin Dashboard
- Teacher Dashboard
- Student Portal
- Concurrent session restriction
- GPS validation
- Batch scheduling
- Calendar-based tracking
- Batch-wise fee configuration
- Razorpay integration
- Payment status tracking
- Timed assessments
- MCQ + coding questions
- Submission analytics
- Result tracking
- Secure chat console
- Reactions
- Drive-based media sharing
- Cached image proxy
- File chunking
- AES encryption
- Google Drive storage
- Background worker processing
- Secure reassembly on download
- Global announcements
- Batch-scoped distribution
- DFS-backed file attachments
project-root/
├─ admin_dashboard.php
├─ attendance.php
├─ authenticate.php
├─ chat_console.php
├─ composer.json
├─ db_config.php
├─ distribute_file.php
├─ drive_manager.php
├─ exam_management.php
├─ fees_management.php
├─ google_callback.php
├─ index.php
├─ notes_management.php
├─ notice_post.php
├─ profile.php
├─ schedule_batch.php
├─ teachers_dashboard.php
├─ worker_process.php
├─ User.class.php
│
├─ vendor/
├─ cache/
└─ temp_uploads/
flowchart TD
Client[User Browser] --> App[PHP Application Layer]
App --> DB[(MySQL)]
App --> OAuth[Google OAuth]
App --> Drive[Google Drive API]
App --> Payment[Razorpay Gateway]
- Thin frontend, strong backend logic
- Centralized business abstraction via
User.class.php - Encrypted distributed storage
- Asynchronous worker-based processing
- Strict role validation
flowchart TD
Upload --> CreateJob
CreateJob --> WorkerProcess
WorkerProcess --> Split
Split --> Encrypt
Encrypt --> UploadToDrive
UploadToDrive --> RegisterDB
RegisterDB --> Complete
- Files split into encrypted chunks
- Each chunk stored in Google Drive
appDataFolder - Metadata stored in
chunk_registry - Secure reassembly via streaming endpoint
erDiagram
USERS ||--o{ ACTIVITY_LOG : logs
USERS ||--o{ BATCH_STUDENTS : enrolls
BATCHES ||--o{ BATCH_STUDENTS : has
BATCHES ||--o{ ATTENDANCE : schedules
USERS ||--o{ ATTENDANCE : marks
USERS ||--o{ FEES : billed
FEES ||--o{ PAYMENTS : paid
BATCHES ||--o{ FEES : per_batch
BATCHES ||--o{ TESTS : assigned
TESTS ||--o{ EXAM_QUESTIONS : contains
TESTS ||--o{ EXAM_SUBMISSIONS : attempted
EXAM_SUBMISSIONS ||--o{ EXAM_RESPONSES : answers
USERS ||--o{ CHAT_MESSAGES : sends
CHAT_MESSAGES ||--o{ CHAT_REACTIONS : reacts
DISTRIBUTION_QUEUE ||--o{ CHUNK_REGISTRY : outputs
NOTES_REGISTRY ||--o{ CHUNK_REGISTRY : references
USERS ||--o{ NOTICES : posts
flowchart TD
AdminBatches[schedule_batch.php manages batches] --> BatchesDB[batches + batch_students]
BatchesDB --> AttendanceModule[attendance.php]
BatchesDB --> TeacherHub[teachers_dashboard.php]
BatchesDB --> ExamsModule[exam_management.php]
BatchesDB --> FeesModule[fees_management.php]
BatchesDB --> NotesModule[notes_management.php]
TeacherHub --> Homework[Post homework and tests]
AttendanceModule --> AttendanceData[attendance table]
ExamsModule --> ExamResults[exam_submissions and responses]
FeesModule --> FeeStatus[fees and payments]
NotesModule --> NotesLinks[notes_registry and DFS chunks]
StudentPortal[profile.php and student views] --> AttendanceModule
StudentPortal --> ExamsModule
StudentPortal --> FeesModule
StudentPortal --> NotesModule
StudentPortal --> ChatConsole
The main teaching loop connects batches, fees, attendance, homework, exams, notes, and communication. Each day, these modules coordinate around batch definitions and membership.
flowchart TD
AdminUpload[Admin uploads file in distribute_file.php] --> CreateJob[Create PENDING job in distribution_queue]
CreateJob --> TriggerWorker[trigger_worker.php optionally launches worker]
TriggerWorker --> Worker[worker_process.php loop]
Worker --> ReadJob[Read PENDING job]
ReadJob --> Split[Split local file into chunks]
Split --> EncryptChunks[Encrypt each chunk]
EncryptChunks --> AssignDrives[Assign chunk owners with Drive tokens]
AssignDrives --> UploadToDrive[Upload to appDataFolder]
UploadToDrive --> RegisterChunks[Insert chunk_registry rows]
RegisterChunks --> MarkComplete[Mark job COMPLETE]
AdminDownload[Admin clicks download DFS file] --> AssembleMeta[Read chunk_registry for file UUID]
AssembleMeta --> FetchChunk[Fetch encrypted chunks from Drive]
FetchChunk --> DecryptChunk[Decrypt and combine chunks]
DecryptChunk --> ServeFile[Stream original file to browser]
Admins use the DFS console to upload files and later retrieve them. A worker process handles the heavy work asynchronously, using Google Drive for chunk storage.
- AES-based chunk encryption
- OAuth 2.0 secure login
- Google Drive token isolation
- Role-based query enforcement
- Secure file streaming
- Session concurrency protection
The DFS system runs through:
worker_process.php(CLI processor)trigger_worker.php(non-blocking launcher)- Windows
start_worker.bat
This ensures:
- Non-blocking uploads
- Queue-based execution
- Fault tolerance
- Scalable processing
| Layer | Technology |
|---|---|
| Backend | PHP 8.x |
| Database | MySQL |
| Auth | Google OAuth 2.0 |
| Storage | Google Drive API |
| Payments | Razorpay |
| Async Engine | CLI Worker |
| Frontend | HTML, CSS, JavaScript |
- Modular architecture
- Distributed encrypted storage
- Clean role separation
- Background job engine
- Cloud-native integration
- Scalable database schema
This section explains how to deploy the Digital Coaching DFS Platform in a production environment.
| Component | Recommended Version |
|---|---|
| PHP | 8.1 or higher |
| MySQL | 8.0+ |
| Apache / Nginx | Latest stable |
| Composer | Latest |
| OpenSSL | Enabled |
| cURL | Enabled |
| JSON Extension | Enabled |
| CLI PHP | Required (for DFS worker) |
git clone https://your-repository-url.git
cd project-rootcomposer install --no-dev --optimize-autoloaderCREATE DATABASE coaching_platform;mysql -u root -p coaching_platform < login_system_db.sqldefine('DB_HOST', 'localhost');
define('DB_NAME', 'coaching_platform');
define('DB_USER', 'your_db_user');
define('DB_PASS', 'your_db_password');-
Create a new project
-
Enable:
- Google Drive API
- Google OAuth API
-
Create OAuth 2.0 Client ID
-
Add authorized redirect URIs:
https://yourdomain.com/google_callback.php
https://yourdomain.com/link_google_callback.php
define('GOOGLE_CLIENT_ID', 'your-client-id');
define('GOOGLE_CLIENT_SECRET', 'your-client-secret');
define('GOOGLE_REDIRECT_URI', 'https://yourdomain.com/google_callback.php');- Login to https://dashboard.razorpay.com/
- Generate API Keys
Update configuration:
define('RAZORPAY_KEY_ID', 'your_key_id');
define('RAZORPAY_SECRET', 'your_secret');chmod -R 755 cache/
chmod -R 755 temp_uploads/If required:
chown -R www-data:www-data project-root/The Distributed File System requires a background worker.
Install Supervisor:
sudo apt install supervisorCreate config:
sudo nano /etc/supervisor/conf.d/dfs_worker.confAdd:
[program:dfs_worker]
command=php /var/www/project-root/worker_process.php
autostart=true
autorestart=true
stderr_logfile=/var/log/dfs_worker.err.log
stdout_logfile=/var/log/dfs_worker.out.log
Reload:
sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start dfs_workerRun:
start_worker.batOr configure via Task Scheduler.
Enable rewrite:
a2enmod rewrite
systemctl restart apache2Virtual Host:
<VirtualHost *:80>
ServerName yourdomain.com
DocumentRoot /var/www/project-root
</VirtualHost>
server {
listen 80;
server_name yourdomain.com;
root /var/www/project-root;
index index.php;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
Install Certbot:
sudo apt install certbotApache:
sudo certbot --apacheNginx:
sudo certbot --nginx- Admin login works
- Google OAuth login works
- Google Drive linking works
- DFS upload creates job
- Worker processes queue
- File reassembly works
- Razorpay test payment works
- Disable
display_errorsin php.ini - Store secrets in environment variables
- Restrict public access to config files
- Enable firewall (UFW)
- Enforce HTTPS only
- Enable logging & monitoring
- Use strong DB passwords
After completing the above steps, your system will be:
- Cloud-integrated
- Distributed
- Secure
- Payment-enabled
- Background-processed
- Production-ready
The Digital Coaching DFS Platform represents a secure, distributed, cloud-powered academic management system designed with enterprise-level architecture principles.
It combines:
✔ Learning management ✔ Secure communication ✔ Payment automation ✔ Distributed encrypted storage ✔ Modular scalability ✔ Stable and platform independent
Aviraj Salunkhe 📧 Email Me 🌐 GitHub Profile
Swayam Gunjal 📧 Email Me 🌐 GitHub Profile
Vedant Ghode 📧 Email Me 🌐 GitHub Profile
