A comprehensive full-stack web application for grade management that combines modern frontend technologies with robust backend infrastructure. This project demonstrates end-to-end software development skills including RESTful API design, database management, and responsive user interface development for educational administration.
Developed as a portfolio project to showcase proficiency in full-stack web development, combining React.js frontend with Flask backend, RESTful API design, and database integration. Ideal for understanding modern web application architecture, CRUD operations, and responsive design principles.
- 📝 Student Management: Complete CRUD operations for student records
- ➕ Add Students: Real-time student registration with grade input validation
- 📊 Grade Tracking: View and manage student grades in an intuitive interface
- 💾 Data Persistence: SQLite database for reliable data storage
- 🔄 Real-time Updates: Instant UI updates after data operations
- ✅ Input Validation: Comprehensive form validation on client and server side
- 📱 Responsive Design: Mobile-first design using TailwindCSS
- ⚡ Fast Performance: Optimized React components with Vite build tool
- 🎯 Error Handling: Comprehensive error states and user feedback
- 🔄 Loading States: Smooth loading indicators for better UX
- Frontend Framework: React.js 18.2+ with Hooks
- Backend Framework: Flask 2.3+ (Python)
- Database: SQLite 3.42+ (Embedded)
- Styling: TailwindCSS 3.3+ (Utility-first CSS)
- Build Tool: Vite.js (Fast development server)
- HTTP Client: Fetch API for API communication
- CORS: Flask-CORS for cross-origin requests
- Platform: Cross-platform web application
Before running this application, ensure you have:
- Node.js: v16.0+ (with npm)
- Python: 3.8+ with pip
- Operating System: Linux, macOS, or Windows
- Browser: Modern browser (Chrome, Firefox, Safari, Edge)
-
Clone the Repository
git clone https://github.com/kyleyuen/Fullstack-grade-manager.git cd Fullstack-grade-manager -
Backend Setup (Flask + SQLite)
cd Backend # Create virtual environment python3 -m venv venv # Activate virtual environment # On Windows: venv\Scripts\activate # On macOS/Linux: source venv/bin/activate # Install dependencies pip install -r requirements.txt # Initialize database and start server python app.py
Backend will run on
http://127.0.0.1:5000 -
Frontend Setup (React + TailwindCSS)
# Open new terminal cd frontend # Install dependencies npm install # Start development server npm run dev
Frontend will run on
http://localhost:5173
- View Students: Upon loading, all students are displayed in a responsive card layout
- Add Student: Fill in the student name and grade in the form and click "Add Student"
- Real-time Updates: New students appear immediately in the list
- Error Handling: Clear error messages for invalid inputs or server errors
- Data Persistence: All changes are automatically saved to the database
=== Grade Manager Dashboard ===
Student List:
• Alice Johnson - Grade: 95
• Bob Smith - Grade: 87
• Carol Davis - Grade: 92
Add New Student:
Name: [David Wilson]
Grade: [88]
[Add Student]
✅ Student added successfully!
The backend provides RESTful endpoints:
GET /students- Fetch all studentsPOST /students- Add a new student- Request Body:
{"student_name": "string", "grade": number}
- Request Body:
This project demonstrates proficiency in:
- Full-Stack Development: Building complete applications from database to UI
- RESTful API Design: Creating clean, maintainable API endpoints
- Database Management: Efficient data modeling and persistence with SQLite
- Modern React Development: Hooks, component composition, and state management
- Responsive Design: Mobile-first approach with TailwindCSS
- Error Handling: Implementing robust error handling and user feedback
- Code Organization: Clean file structure and separation of concerns
- Build Tools: Modern development workflow with Vite
- Update Records: Edit existing student information
- Delete Students: Remove students with confirmation dialogs
- Search & Filter: Find students by name or grade range
- Sorting Options: Sort by name, grade, or date added
- Grade Analytics: Statistics and visual charts for grade distribution
- Authentication: Secure user login system with JWT
- Bulk Operations: Select and manage multiple students
- Export Data: CSV/PDF export functionality
- Database Upgrade: PostgreSQL for production deployment
- Advanced UI: Toast notifications and improved animations
- Testing Suite: Unit tests and integration tests
- Docker Deployment: Containerization for easy deployment
- Performance Monitoring: Application performance tracking
| Aspect | Details |
|---|---|
| Frontend Framework | React.js 18.2+ |
| Backend Framework | Flask 2.3+ |
| Database | SQLite 3.42+ |
| API Response Time | < 200ms average |
| Browser Support | Chrome, Firefox, Safari, Edge |
| Mobile Responsive | Yes (TailwindCSS) |
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
- Follow existing code style and conventions
- Add comments for complex logic
- Test thoroughly before submitting
- Update documentation as needed
This project is licensed under the MIT License - see the LICENSE file for details.
Kyle Yuen
- GitHub: @kyleyuen
- Project Link: Fullstack-grade-manager
- Live Demo: fullstack-grade-manager.vercel.app
- Inspired by modern educational management systems
- Built as a learning exercise in full-stack web development
- Thanks to the React and Flask communities for excellent documentation
- Special thanks to the open-source community for continuous inspiration
⭐ Star this repository if you found it helpful! ⭐
Last Updated: October 2024