major update
This commit is contained in:
1 parent
6029d6f244
commit
474235f94d
8 files changed
+895
-184
No files matched your search
@@ -1,109 +1,359 @@
|
||||
# 📝 Spelling App
|
||||
# 📝 Modern Spelling & Typing Practice App
|
||||
|
||||
A lightweight, multi-user spelling practice app with admin controls, customizable themes, and per-user word list management. Built with **Node.js**, **Express**, and **Docker**.
|
||||
---
|
||||
## [Watch the video](https://www.youtube.com/watch?v=K29zCFZPEjE)
|
||||
[](https://www.youtube.com/watch?v=K29zCFZPEjE)
|
||||
A comprehensive educational application featuring spelling practice, typing exercises, and Bible verse typing with mode## ⚙️ Features Overview
|
||||
|
||||
### 🎓 St### 👨💼 Admin Panel Featuresde---
|
||||
|
||||
## 🔧 Configuration
|
||||
|
||||
## 🛡️ Security Features## Environment VariablestivitiesUI design. Built with **Node.js**, **Express**, and optimized for Docker deployment.
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Quick Start (Docker Compose)
|
||||
## [Watch the Demo Video](https://www.youtube.com/watch?v=K29zCFZPEjE)
|
||||
[](https://www.youtube.com/watch?v=K29zCFZPEjE)
|
||||
|
||||
Clone and run from anywhere using Docker Compose:
|
||||
---
|
||||
|
||||
## 🚀 Installation Options
|
||||
|
||||
### Option 1: Docker (Recommended)
|
||||
|
||||
#### Quick Start with Docker Compose
|
||||
```bash
|
||||
git clone https://git.necloud.us/nmemmert/Spelling.git
|
||||
cd Spelling
|
||||
docker-compose up --build
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
Then visit: 👉 http://localhost:3000
|
||||
#### Using Pre-built Container
|
||||
```bash
|
||||
# Pull and run the latest container
|
||||
docker run -d \
|
||||
--name spelling-app \
|
||||
-p 3000:3000 \
|
||||
-v ./data:/app/data \
|
||||
--restart unless-stopped \
|
||||
git.necloud.us/nmemmert/spelling:latest
|
||||
```
|
||||
|
||||
#### Custom Docker Compose
|
||||
```yaml
|
||||
version: "3.9"
|
||||
services:
|
||||
spelling-app:
|
||||
image: git.necloud.us/nmemmert/spelling:latest
|
||||
container_name: spelling-app
|
||||
ports:
|
||||
- "3000:3000"
|
||||
volumes:
|
||||
- ./data:/app/data
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
- NODE_ENV=production
|
||||
```
|
||||
|
||||
## 👥 Default Login
|
||||
### Option 2: CasaOS Installation
|
||||
|
||||
| Username | Password | Role |
|
||||
|-----------|----------|--------|
|
||||
| admin1 | password | Admin |
|
||||
| student1 | 123456 | Student|
|
||||
#### Method 1: One-Click Install (Recommended)
|
||||
1. **Open CasaOS Dashboard** in your web browser
|
||||
2. Navigate to **App Store** → **Custom Install**
|
||||
3. **Paste this complete Docker Compose configuration:**
|
||||
|
||||
> You can add new users from the Admin Panel.
|
||||
```yaml
|
||||
name: spelling-practice-app
|
||||
services:
|
||||
spelling-app:
|
||||
image: git.necloud.us/nmemmert/spelling:latest
|
||||
container_name: spelling-practice
|
||||
ports:
|
||||
- "3000:3000"
|
||||
volumes:
|
||||
- /DATA/AppData/spelling:/app/data
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
- NODE_ENV=production
|
||||
labels:
|
||||
- "casaos.name=Spelling Practice"
|
||||
- "casaos.icon=📝"
|
||||
- "casaos.category=Education"
|
||||
- "casaos.description=Modern spelling and typing practice application"
|
||||
|
||||
## ⚙️ Features
|
||||
x-casaos:
|
||||
author: NMemmert
|
||||
category: Education
|
||||
description:
|
||||
en_us: "A comprehensive educational application featuring spelling practice, typing exercises, and Bible verse typing with modern UI design."
|
||||
developer: "NMemmert"
|
||||
icon: "📝"
|
||||
screenshot_link: ""
|
||||
tagline:
|
||||
en_us: "Modern Spelling & Typing Practice"
|
||||
thumbnail: ""
|
||||
title:
|
||||
en_us: "Spelling Practice App"
|
||||
tips: {}
|
||||
port_map: "3000"
|
||||
```
|
||||
|
||||
# 🎮 Student-Facing Features
|
||||
4. **Click Install** and wait for deployment to complete
|
||||
5. **Access the app** via CasaOS Dashboard or directly at `http://your-casaos-ip:3000`
|
||||
|
||||
- **Word Game Session**
|
||||
Timed word presentation with answer input and summary feedback
|
||||
> **💡 Tip**: The app will automatically appear in your CasaOS dashboard with the 📝 icon after installation
|
||||
|
||||
- **Retry Missed Words**
|
||||
Quick review round for any words answered incorrectly
|
||||
#### Method 2: Manual CasaOS Installation
|
||||
1. **Access CasaOS Terminal**:
|
||||
- Open CasaOS Dashboard
|
||||
- Go to **Terminal** or **SSH** into your CasaOS system
|
||||
|
||||
- **Result Summary Panel**
|
||||
Shows score, accuracy percentage, and answers with color-coded feedback
|
||||
2. **Create application directory:**
|
||||
```bash
|
||||
mkdir -p /DATA/AppData/spelling
|
||||
cd /DATA/AppData/spelling
|
||||
```
|
||||
|
||||
- **🎖 Badge Display Section**
|
||||
Earned badges appear after each session based on milestone triggers
|
||||
3. **Create docker-compose.yml file:**
|
||||
```bash
|
||||
nano docker-compose.yml
|
||||
```
|
||||
|
||||
4. **Add this configuration and save:**
|
||||
```yaml
|
||||
version: "3.9"
|
||||
services:
|
||||
spelling-app:
|
||||
image: git.necloud.us/nmemmert/spelling:latest
|
||||
container_name: spelling-practice
|
||||
ports:
|
||||
- "3000:3000"
|
||||
volumes:
|
||||
- /DATA/AppData/spelling:/app/data
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
- NODE_ENV=production
|
||||
```
|
||||
|
||||
- **Responsive Design**
|
||||
Touch-friendly interface optimized across devices
|
||||
5. **Deploy the application:**
|
||||
```bash
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
6. **Verify deployment:**
|
||||
```bash
|
||||
docker ps | grep spelling-practice
|
||||
```
|
||||
|
||||
7. **Add to CasaOS Dashboard** (Optional):
|
||||
- Go to CasaOS **Settings** → **Custom Apps**
|
||||
- Click **Add Custom App**
|
||||
- **Name**: "Spelling Practice"
|
||||
- **URL**: `http://localhost:3000`
|
||||
- **Icon**: 📝 (or upload custom icon)
|
||||
- **Category**: Education
|
||||
|
||||
#### CasaOS-Specific Notes:
|
||||
- **Data Location**: All user data is stored in `/DATA/AppData/spelling/`
|
||||
- **Automatic Restart**: Container will restart automatically with CasaOS
|
||||
- **Port Access**: App will be accessible on port 3000
|
||||
- **Updates**: Use CasaOS container management to update the image
|
||||
- **Backups**: Data directory can be backed up through CasaOS file manager
|
||||
|
||||
#### Troubleshooting CasaOS Installation:
|
||||
```bash
|
||||
# Check if container is running
|
||||
docker ps
|
||||
|
||||
# View container logs
|
||||
docker logs spelling-practice
|
||||
|
||||
# Restart container if needed
|
||||
docker restart spelling-practice
|
||||
|
||||
# Check port availability
|
||||
netstat -tlnp | grep :3000
|
||||
```
|
||||
|
||||
### Option 3: Manual Installation
|
||||
```bash
|
||||
# Clone repository
|
||||
git clone https://git.necloud.us/nmemmert/Spelling.git
|
||||
cd Spelling
|
||||
|
||||
# Install dependencies
|
||||
npm install
|
||||
|
||||
# Start application
|
||||
npm start
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
# 📋 Admin Panel Features
|
||||
## 🌐 Access & Default Credentials
|
||||
|
||||
- **User Management**
|
||||
Add and remove student accounts from the system
|
||||
After installation, access the application at:
|
||||
- **Local**: http://localhost:3000
|
||||
- **CasaOS**: http://your-casaos-ip:3000
|
||||
|
||||
- **Word List Editor**
|
||||
Customize spelling lists per student
|
||||
### Default Login Credentials
|
||||
|
||||
- **Game Preview & Play Trigger**
|
||||
Admins can test gameplay directly
|
||||
| Username | Password | Role | Description |
|
||||
|-----------|----------|---------|-------------|
|
||||
| admin1 | password | Admin | Full access to admin panel |
|
||||
| student1 | 123456 | Student | Access to practice activities |
|
||||
|
||||
- **Analytics Tab**
|
||||
Aggregate stats like average scores, most missed words, and per-student breakdown
|
||||
|
||||
- **Badge Viewer Tab**
|
||||
Shows every user's earned badges and lets admins inspect progress visually
|
||||
|
||||
- **Reports Tab**
|
||||
Print-friendly HTML summaries per student with words, scores, and badges
|
||||
|
||||
- **Clipboard Copy Button**
|
||||
Quick export for emailing or recordkeeping
|
||||
> 🔐 **Important**: Change default passwords immediately after first login via Admin Panel → Password Management
|
||||
|
||||
---
|
||||
|
||||
# 🔄 Server-Side Logic
|
||||
## ⚙️ Features Overview
|
||||
|
||||
- **Structured Result Saving**
|
||||
Stores user sessions with score, completion status, and answer accuracy
|
||||
### � Student Activities
|
||||
|
||||
- **Badge Awarding & Storage**
|
||||
Server tracks earned achievements in `badges.json`
|
||||
#### 📝 **Spelling Practice**
|
||||
- Interactive word-by-word spelling challenges
|
||||
- Real-time feedback with visual indicators
|
||||
- Customizable word lists per student
|
||||
- Progress tracking and accuracy scoring
|
||||
- Retry system for missed words
|
||||
|
||||
- **Safe Data Handling**
|
||||
Validates all inputs and formats before writing JSON
|
||||
#### ⌨️ **Typing Practice**
|
||||
- Speed and accuracy typing exercises
|
||||
- WPM (Words Per Minute) calculation
|
||||
- Error highlighting and correction
|
||||
- Progressive difficulty levels
|
||||
- Performance analytics
|
||||
|
||||
#### 📖 **Bible Typing (ESV)**
|
||||
- 15 popular Bible verses for typing practice
|
||||
- Verse-by-verse comparison and accuracy analysis
|
||||
- Word-level error detection and highlighting
|
||||
- Spiritual growth through Scripture memorization
|
||||
- Progress tracking for Bible study
|
||||
|
||||
### 🛠️ **Student Features**
|
||||
- **Theme Selection**: Choose from multiple UI themes
|
||||
- **Progress Dashboard**: View personal statistics and achievements
|
||||
- **Badge System**: Earn badges for milestones and consistent practice
|
||||
- **Responsive Design**: Optimized for desktop, tablet, and mobile
|
||||
- **Clean Interface**: Modern, distraction-free learning environment
|
||||
|
||||
---
|
||||
|
||||
# 🚀 Upcoming Features (in progress or proposed)
|
||||
### 👨� Admin Panel Features
|
||||
|
||||
- **Multi-Session History Tracking**
|
||||
Store multiple results per user for trends and performance graphs
|
||||
#### 📊 **User Management**
|
||||
- Add, edit, and remove student accounts
|
||||
- Role-based access control (Admin/Student)
|
||||
- Password management and reset capabilities
|
||||
- User activity monitoring
|
||||
|
||||
- **Performance Trends Viewer**
|
||||
Line/bar charts to show score progression over time
|
||||
#### 📝 **Content Management**
|
||||
- **Word List Editor**: Create and customize spelling lists per student
|
||||
- **Bulk Import**: Upload word lists from text/CSV files
|
||||
- **Category Organization**: Organize words by topics or difficulty
|
||||
- **Preview Mode**: Test activities before assigning to students
|
||||
|
||||
- **Practice Streak Badges**
|
||||
Awarded for consistent use across days
|
||||
#### 📈 **Analytics & Reporting**
|
||||
- **Performance Analytics**: Track student progress and trends
|
||||
- **Detailed Reports**: Generate comprehensive progress reports
|
||||
- **Export Options**: Download data for external analysis
|
||||
- **Visual Charts**: Graphical representation of student performance
|
||||
|
||||
- **Thematic Word Lists**
|
||||
Organize challenges by topic (e.g. animals, tech, holidays)
|
||||
#### 🏆 **Badge Management**
|
||||
- **Achievement System**: Configure milestone badges
|
||||
- **Progress Tracking**: Monitor student achievements
|
||||
- **Custom Badges**: Create custom rewards for specific goals
|
||||
- **Badge Viewer**: Visual display of all earned achievements
|
||||
|
||||
- **Email Export Button**
|
||||
Opens a pre-filled `mailto:` with progress summary text
|
||||
#### ⚙️ **System Administration**
|
||||
- **Password Management**: Change admin and student passwords
|
||||
- **Security Controls**: Manage access permissions
|
||||
- **Data Backup**: Export/import user data and settings
|
||||
- **System Monitoring**: View application health and usage
|
||||
|
||||
- **PDF Export Option**
|
||||
Convert report data into downloadable documents
|
||||
---
|
||||
|
||||
## � Configuration
|
||||
|
||||
### Environment Variables
|
||||
```bash
|
||||
# Optional environment variables
|
||||
NODE_ENV=production # Set to production for deployment
|
||||
PORT=3000 # Application port (default: 3000)
|
||||
```
|
||||
|
||||
### Data Persistence
|
||||
The application stores data in JSON files:
|
||||
- `data/users.json` - User accounts and authentication
|
||||
- `data/wordlists.json` - Custom word lists per student
|
||||
- `data/results.json` - Student progress and results
|
||||
- `data/badges.json` - Achievement and badge data
|
||||
|
||||
### Volume Mapping
|
||||
For Docker installations, map the data directory:
|
||||
```bash
|
||||
-v /host/data/path:/app/data
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## �️ Security Features
|
||||
|
||||
- **Password Hashing**: SHA-256 encryption for all passwords
|
||||
- **Role-Based Access**: Separate admin and student interfaces
|
||||
- **Session Management**: Secure login/logout functionality
|
||||
- **Input Validation**: Protection against common security vulnerabilities
|
||||
- **Data Isolation**: Per-user data segregation
|
||||
|
||||
---
|
||||
|
||||
## 🔄 Updates & Maintenance
|
||||
|
||||
### Updating the Application
|
||||
```bash
|
||||
# Pull latest image
|
||||
docker pull git.necloud.us/nmemmert/spelling:latest
|
||||
|
||||
# Restart container
|
||||
docker-compose down && docker-compose up -d
|
||||
```
|
||||
|
||||
### Backup Data
|
||||
```bash
|
||||
# Backup user data
|
||||
docker cp spelling-app:/app/data ./backup-$(date +%Y%m%d)
|
||||
```
|
||||
|
||||
### Logs & Troubleshooting
|
||||
```bash
|
||||
# View application logs
|
||||
docker logs spelling-app
|
||||
|
||||
# Follow live logs
|
||||
docker logs -f spelling-app
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🤝 Support & Contributing
|
||||
|
||||
- **Issues**: Report bugs and feature requests
|
||||
- **Documentation**: Comprehensive setup guides
|
||||
- **Community**: Educational technology discussions
|
||||
|
||||
### Technical Specifications
|
||||
- **Backend**: Node.js 18+ with Express.js
|
||||
- **Frontend**: Vanilla JavaScript with modern CSS
|
||||
- **Storage**: JSON-based file system
|
||||
- **Container**: Multi-stage Docker build (293MB)
|
||||
- **Security**: SHA-256 password hashing, role-based access
|
||||
|
||||
---
|
||||
|
||||
## 📄 License
|
||||
|
||||
This project is designed for educational use and community deployment.
|
||||
|
||||
---
|
||||
|
||||
*Built with ❤️ for educators and students everywhere*
|
||||
Reference in new issue
Block a user