A comprehensive, Missouri-compliant homeschool tracking application with offline support, real-time database synchronization, and modern web technologies.
- Student Management: Add, edit, and track student information
- Course Management: Create and organize courses by subject
- Hour Logging: Track daily learning hours with location and notes
- Portfolio Management: Store and organize work samples
- Compliance Reporting: Generate Missouri-compliant annual reports
- Transcript Generation: Create official high school transcripts
- Diploma Creation: Generate printable diplomas
- Progressive Web App (PWA): Works offline with service worker caching
- Real-time Database: Neon PostgreSQL with Netlify Functions
- Modern UI: Responsive design with accessibility features
- Data Validation: Comprehensive input validation and error handling
- Backup & Restore: Import/export functionality for data portability
- Admin Panel: Database monitoring and management interface
- Frontend: Vanilla JavaScript, HTML5, CSS3
- Backend: Netlify Functions (Node.js)
- Database: Neon PostgreSQL
- ORM: Drizzle ORM
- Deployment: Netlify
- Caching: Service Worker with multiple strategies
- Icons: Custom SVG and PNG icons
- Node.js 18.0.0 or higher
- Netlify account
- Neon PostgreSQL database
git clone https://github.com/fivegoerings/peaceful-academy.git
cd peaceful-academynpm installCreate a .env file in the root directory:
NETLIFY_DATABASE_URL=your_neon_database_url_here# Generate database migrations
npm run db:generate
# Apply migrations
npm run db:migrate# Start development server
npm run dev
# Or start with functions
npm run functions:dev# Deploy to production
npm run deploypeacefulFieldsAcademy/
βββ admin/ # Admin panel interface
β βββ app.js # Admin JavaScript
β βββ index.html # Admin HTML
β βββ style.css # Admin styles
βββ assets/ # Static assets
β βββ icon-*.png # App icons
β βββ icon.svg # Main icon
βββ db/ # Database configuration
β βββ index.ts # Database connection
β βββ schema.ts # Drizzle schema
βββ netlify/
β βββ functions/ # Netlify serverless functions
β βββ api.mjs # API endpoints
β βββ db.mjs # Database operations
βββ index.html # Main application
βββ manifest.webmanifest # PWA manifest
βββ sw.js # Service worker
βββ package.json # Dependencies and scripts
βββ netlify.toml # Netlify configuration
βββ drizzle.config.ts # Drizzle configuration
The application uses a comprehensive database schema with the following tables:
students: Student information and demographicscourses: Course definitions and subjectslogs: Daily hour tracking entriesportfolio: Work samples and file metadatafiles: File storage metadatasettings: Application configuration
NETLIFY_DATABASE_URL: Neon PostgreSQL connection string
- Unified schema across all functions
- Proper foreign key relationships
- Comprehensive data validation
- TypeScript types for all database operations
- Input validation on all forms
- Comprehensive error messages
- Graceful error recovery
- User-friendly notifications
- SQL injection prevention
- Input sanitization
- CORS configuration
- Environment variable validation
- Loading states and feedback
- Toast notifications
- Responsive design
- Accessibility improvements
- Keyboard navigation support
- Service worker with multiple caching strategies
- Offline functionality
- Background sync capabilities
- Memory leak prevention
- Consistent coding standards
- TypeScript integration
- Modular architecture
- Comprehensive documentation
The application is designed to meet Missouri homeschool requirements:
- 1,000 Total Hours: Track total learning hours per student
- 600 Core Hours: Reading, Language Arts, Mathematics, Science, Social Studies
- 400 Core @ Home: Core subjects completed at home
- Documentation: Daily logs, portfolio samples, and evaluations
- Reporting: Annual compliance reports and transcripts
Access the admin panel at /admin to:
- Monitor database health and performance
- View real-time statistics
- Manage students, courses, and logs
- Monitor API endpoints
- Offline Support: Works without internet connection
- App Installation: Install as native app
- Background Sync: Sync data when connection restored
- Push Notifications: Real-time updates
- Responsive Design: Works on all devices
The application includes comprehensive error handling:
- Network connectivity issues
- Database connection problems
- Invalid user input
- File upload errors
- Service worker failures
npm run dev # Start development server
npm run build # Build for production
npm run deploy # Deploy to Netlify
npm run functions:dev # Start functions locally
npm run functions:build # Build functions
npm run db:generate # Generate database migrations
npm run db:migrate # Apply migrations
npm run db:studio # Open Drizzle Studio
npm run generate-icons # Generate app iconsnpm test # Run tests (when implemented)- Database health monitoring
- API endpoint status
- Error tracking and logging
- Performance metrics
- User activity analytics
- All database queries use parameterized statements
- Input validation on all endpoints
- CORS properly configured
- Environment variables for sensitive data
- Regular security updates
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
MIT License - see LICENSE file for details
For support and questions:
- Create an issue on GitHub
- Check the documentation
- Review the admin panel for system status
- Complete database schema overhaul
- Enhanced error handling and validation
- Improved user experience and accessibility
- Service worker improvements
- Admin panel enhancements
- Security improvements
- Performance optimizations
- Initial release
- Basic functionality
- Simple database schema
Peaceful Fields Academy - Empowering homeschool families with modern, compliant tracking tools.