School Project Evolution & Comparison Report
This presentation compares three versions of our Question Bank system for school use:
Initial implementation with basic functionality for generating CS questions.
Enhanced version with improved UI, better filtering, and modern design for Computer Science.
Extended platform adapted for Chemistry subject with specialized features and image support.
| Feature | Version 1 (Old) | Version 2 (Current) |
|---|---|---|
| UI Framework | Custom HTML/CSS | Bootstrap 5 + Custom CSS |
| Filter System | Dropdown selects | Interactive toggle buttons with collapse |
| Color Scheme | Static colors | Dynamic gradients (#eaaa43, #21364b, #1b465c, #3594aa) |
| Header Animation | None | Fluid gradient animation |
| Responsiveness | Basic | Fully responsive with Bootstrap grid |
| User Experience | Functional | Modern, intuitive, engaging |
| Accessibility | Limited | Better with Bootstrap ARIA labels |
<!-- Version 1 HTML -->
<select id="gen-topics" multiple>
<option value="Hardware">Hardware</option>
<option value="Software">Software</option>
</select>
<!-- Version 1 CSS -->
.filter-group select[multiple] {
height: 150px;
width: 100%;
border: 1px solid #e0e0e0;
border-radius: 4px;
}
<!-- Version 2 HTML -->
<div id="gen-topics" class="filter-buttons d-flex flex-wrap gap-1">
<button class="filter-btn">Hardware</button>
<button class="filter-btn selected">Software</button>
</div>
<!-- Version 2 CSS -->
.filter-buttons .filter-btn {
padding: 0.25rem 0.6rem;
border: 1px solid var(--primary);
background: white;
color: var(--primary);
border-radius: 15px;
cursor: pointer;
transition: all 0.2s ease;
}
.filter-buttons .filter-btn.selected {
background: var(--primary);
color: white;
}
<!-- Version 2 JavaScript -->
function toggleFilter(element) {
element.classList.toggle('selected');
const container = element.closest('.filter-buttons');
if (container) {
updateSelectedCount(container.id);
}
}
<!-- Version 2 CSS Animation -->
@keyframes fluid {
0% { background-position: 0% 50%; }
50% { background-position: 100% 50%; }
100% { background-position: 0% 50%; }
}
header {
background: linear-gradient(45deg, #eaaa43, #21364b, #1b465c, #3594aa, #eaaa43);
background-size: 400% 400%;
animation: fluid 15s ease infinite;
}
| Metric | Version 1 | Version 2 |
|---|---|---|
| Lines of CSS | 300-400 | 600+ (more features & animations) |
| Number of Components | 5 | 12+ |
| Filter Options | 3 dropdowns | Interactive toggle system |
| Browser Support | Basic | Modern browsers + Bootstrap support |
| Load Time | Fast (small) | Fast (Bootstrap CDN) |
{
"source": "s22_11",
"number": "1(a)",
"question_text": "State the difference between...",
"topics": ["Information representation"],
"types": ["Definition", "Comparison"],
"aos": ["AO1"],
"answer_text": "..."
}
{
"Year": "2024",
"number": "1",
"question_text": "chem2024q1.jpeg",
"subject": ["Chem"],
"topics": ["地球"],
"types": ["Definition", "Comparison"],
"level": ["85%"],
"answer_text": "A"
}
Key Differences:
| Feature Category | Version 3 (Chemistry) | Question-Bank Repository | Advantage |
|---|---|---|---|
| Architecture | Single HTML file + JSON | Modular JS (5 files) + SQLite DB | Question-Bank |
| Authentication | No authentication | Google Identity Services (School-only) | Question-Bank |
| Database | JSON file storage | SQLite database with SQL.js | Question-Bank |
| Tools & Features | Question generation only | Generator + Statistics + OCR + PDF Tools | Question-Bank |
| OCR Integration | Not available | Gradio-powered OCR tools | Question-Bank |
| PDF Manipulation | Not available | PDF.js, PDF-lib, jsPDF, Fabric.js | Question-Bank |
| Drag & Drop | Not available | Sortable.js integration | Question-Bank |
| Subject Support | Chemistry-focused | Multi-subject (Math, Chemistry) | Question-Bank |
| UI Complexity | Simple, focused | Advanced tabs, accordions, modals | Question-Bank |
| Deployment | Static files | Requires database file hosting | Version 3 |
| Setup Complexity | Simple (drag & drop) | Complex (DB setup, auth config) | Version 3 |
| Performance | Fast (JSON loading) | Heavy (SQLite in browser) | Version 3 |
Recommendation: Use Version 3 as the foundation for a simplified version, while adopting Question-Bank's modular architecture and advanced features for the educational version. This creates a tiered approach: basic platform (v3) and educational platform (Question-Bank evolution).
Timeline: Month 1-2
Timeline: Month 3-6
Timeline: Month 7-12
High-level system overview showing key components
Data flow and user interaction patterns
Detailed technical architecture and components
Deployment and hosting infrastructure setup
Current Status: The project has evolved through multiple iterations, with the Question-Bank repository representing the most advanced educational solution featuring authentication, database integration, OCR tools, and comprehensive PDF manipulation capabilities.
Key Achievements:
Recommended Next Action: Immediately deploy and enhance the Question-Bank repository as the primary platform, while maintaining Version 3 as a lightweight alternative for specific use cases.
Question Bank - School Project Presentation
November 2025 | For Educational Use Only