187 lines
4.9 KiB
Markdown
187 lines
4.9 KiB
Markdown
# 🚀 Quick Start Guide
|
||
|
||
## ✅ System is Running!
|
||
|
||
Your exam system is fully operational with all the new features enabled.
|
||
|
||
## 🌐 Access Points
|
||
|
||
- **Frontend UI:** http://localhost (Port 80)
|
||
- **Backend API:** http://localhost/api/
|
||
- **Angular Dev Server:** Running on port 4200 (internal)
|
||
- **Django Server:** Running on port 8000 (internal)
|
||
|
||
## 📝 Available Exams
|
||
|
||
1. **python-easy-v1** - 10 questions (original easy exam)
|
||
2. **python-intermediate-v1** - 50 questions (intermediate level)
|
||
3. **python-easy-15q-v1** ⭐ NEW - 15 questions with new features:
|
||
- 6 × single_choice
|
||
- 5 × true_false
|
||
- 4 × multiple_choices (NEW TYPE!)
|
||
- All questions have "I Don't Know" option
|
||
|
||
## 🎯 Test the New Features
|
||
|
||
### 1. Register/Login
|
||
- Go to http://localhost
|
||
- Create a new account or login
|
||
- All previous user data has been cleared
|
||
|
||
### 2. Select the New Exam
|
||
- Choose "Python Fundamentals - Easy Level (15 Questions)"
|
||
- Click "Start Exam"
|
||
|
||
### 3. Test Multiple Choices Questions
|
||
- Look for questions that say "Select all that apply"
|
||
- You can select multiple checkboxes
|
||
- Try selecting correct and wrong answers to see partial credit in action
|
||
|
||
### 4. Test "I Don't Know" Option
|
||
- Every question has an "I Don't Know" option at the bottom
|
||
- It's separated by a line and styled in italic gray text
|
||
- For multiple_choices: Selecting IDK clears all other selections
|
||
- For single_choice/true_false: Just another radio option
|
||
|
||
### 5. Submit and View Results
|
||
- Submit the exam to see automatic scoring
|
||
- Results page shows:
|
||
- All options with color coding
|
||
- Green = correct answer
|
||
- Blue = your selection
|
||
- Red = wrong selection
|
||
- Yellow box if you selected "I Don't Know"
|
||
- Partial credit scores for multiple_choices
|
||
|
||
## 🎨 Visual Features
|
||
|
||
### Multiple Choices UI
|
||
```
|
||
Select all that apply:
|
||
☐ A. Option A
|
||
☐ B. Option B
|
||
☐ C. Option C
|
||
─────────────────
|
||
☐ ? I don't know
|
||
```
|
||
|
||
### "I Don't Know" Option
|
||
- Gray italic text
|
||
- Separated by a border line
|
||
- Question mark icon (?)
|
||
|
||
### Result Display
|
||
- **Correct answer:** Green border, light green background
|
||
- **Your correct selection:** Thicker green border, badge "✓ Your Selection (Correct!)"
|
||
- **Your wrong selection:** Red border, red background, badge "✗ Wrong Selection"
|
||
- **IDK selected:** Yellow background notice box
|
||
|
||
## 📊 Scoring
|
||
|
||
### Single Choice / True-False
|
||
- Correct answer: Full points
|
||
- Wrong answer: 0 points
|
||
- "I don't know": 0 points (no penalty)
|
||
|
||
### Multiple Choices (Partial Credit)
|
||
- Formula: `(correct_selected - wrong_selected) / total_correct × points`
|
||
- Example (3 correct answers, 10 points):
|
||
- Select all 3 correct: 10 points
|
||
- Select 2 correct, 0 wrong: 6.67 points
|
||
- Select 2 correct, 1 wrong: 3.33 points
|
||
- Select "I don't know": 0 points
|
||
- Minimum score is 0 (never negative)
|
||
|
||
## 🔧 Docker Management
|
||
|
||
### Check Status
|
||
```bash
|
||
cd /Volumes/data/tutor_system/exam_system
|
||
docker-compose ps
|
||
```
|
||
|
||
### View Logs
|
||
```bash
|
||
docker-compose logs exam_web # Frontend logs
|
||
docker-compose logs exam_server # Backend logs
|
||
docker-compose logs nginx # Nginx logs
|
||
```
|
||
|
||
### Restart Services
|
||
```bash
|
||
docker-compose restart # Restart all
|
||
docker-compose restart exam_web # Restart frontend only
|
||
```
|
||
|
||
### Stop/Start
|
||
```bash
|
||
docker-compose down # Stop all containers
|
||
docker-compose up -d # Start all containers
|
||
docker-compose up --build -d # Rebuild and start
|
||
```
|
||
|
||
## 📂 File Locations
|
||
|
||
### Exam Definitions
|
||
```
|
||
/Volumes/data/tutor_system/exam_system/data/input/python/2025-10/
|
||
├── python-easy-v1.json
|
||
├── python-intermediate-v1.json
|
||
└── python-easy-15q-v1.json ⭐ NEW
|
||
```
|
||
|
||
### Manifest
|
||
```
|
||
/Volumes/data/tutor_system/exam_system/data/manifest.json
|
||
```
|
||
|
||
### Documentation
|
||
```
|
||
/Volumes/data/tutor_system/docs/exam-format.md
|
||
/Volumes/data/tutor_system/docs/multiple-choices-and-idk.md
|
||
/Volumes/data/tutor_system/exam_system/MULTIPLE_CHOICES_AND_IDK_IMPLEMENTATION.md
|
||
```
|
||
|
||
## 🐛 Troubleshooting
|
||
|
||
### "Cannot GET /" Error
|
||
- **Fixed!** - This was due to TypeScript compilation errors
|
||
- Angular app is now compiled successfully
|
||
|
||
### Angular Not Compiling
|
||
```bash
|
||
docker-compose logs exam_web
|
||
# Look for "✔ Compiled successfully"
|
||
```
|
||
|
||
### API Not Responding
|
||
```bash
|
||
docker-compose logs exam_server
|
||
# Check for gunicorn startup messages
|
||
```
|
||
|
||
### Port Already in Use
|
||
```bash
|
||
# If port 80 is already in use:
|
||
# 1. Stop the conflicting service
|
||
# 2. Or modify docker-compose.yml to use different ports
|
||
```
|
||
|
||
## 🎓 Next Steps
|
||
|
||
1. **Test the new exam** with all question types
|
||
2. **Try the IDK option** on different question types
|
||
3. **Submit and check results** to see partial credit scoring
|
||
4. **Retake the exam** to test the reset functionality
|
||
5. **View exam history** to see all your attempts
|
||
|
||
## 📚 Additional Documentation
|
||
|
||
- See `MULTIPLE_CHOICES_AND_IDK_IMPLEMENTATION.md` for implementation details
|
||
- See `NEW_EXAM_CREATED.md` for new exam specifications
|
||
- See `FINAL_GUIDE.md` for overall system guide
|
||
|
||
---
|
||
|
||
**All systems ready! Have fun testing! 🎉**
|