The School Self-Evaluation Platform is a web-based application designed to facilitate self-evaluation processes for Islamic schools under the Ministry of Religious Affairs of Indonesia. It provides a centralized platform for madrasahs to assess their performance, plan improvements, and report their progress to higher authorities.
Features
User Authentication: Implements secure user authentication and authorization using NextAuth.js with role-based access control.
Multi-role Support: Supports different user roles (Madrasah Staff, Madrasah Principal, Supervisor, District/City Admin, Provincial Admin, Central Admin) with role-specific functionalities.
Dashboard: Provides role-specific dashboards with summaries and visualizations of evaluation data.
Self-Evaluation Process: Allows madrasahs to complete a structured self-evaluation questionnaire covering various aspects of school performance.
File Upload: Supports document uploads as evidence for evaluation responses.
Activity Planning: Enables madrasahs to plan and prioritize improvement activities based on evaluation results.
Approval Workflow: Implements a multi-step approval process involving school principals and supervisors.
Historical Data: Maintains historical evaluation data for year-on-year comparisons.
Reporting: Offers comprehensive reporting capabilities for different administrative levels.
Data Visualization: Utilizes charts and graphs to present evaluation results and progress.
Integration with External Systems: Integrates with other systems like E-RKAM for budget planning.
Tech Stack
React: The frontend is built using React, providing a component-based architecture for the user interface.
Next.js: Leverages Next.js for server-side rendering, routing, and API routes.
TypeScript: Utilizes TypeScript for enhanced type safety and improved developer experience.
Chakra UI: Employs Chakra UI for consistent and customizable UI components.
Jotai: Uses Jotai for lightweight and scalable state management across the application.
React Query: Implements React Query for efficient server state management and data fetching.
Axios: Utilizes Axios for making HTTP requests to the backend API.
Zod: Employs Zod for runtime type checking and form validation.
React Hook Form: Uses React Hook Form for efficient form handling and validation.
Chart.js: Implements Chart.js for data visualization.
Cypress: Utilizes Cypress for end-to-end testing of the application.
Docker: Uses Docker for containerization and deployment.
Sentry: Integrates Sentry for error tracking and performance monitoring.
Lessons Learned
This project has provided valuable insights into:
Complex Workflow Management: Implementing a multi-step evaluation and approval process across different user roles.
Hierarchical Data Handling: Managing and aggregating data at various administrative levels (school, district, province, national).
Performance Optimization: Implementing strategies to handle large datasets and complex calculations efficiently.
User Experience for Diverse Users: Designing intuitive interfaces for users with varying levels of technical proficiency.
Data Integrity and Security: Ensuring the confidentiality and integrity of sensitive educational data.
Scalability: Designing the system to handle a large number of schools and users across the country.
Offline Support Considerations: Addressing challenges related to internet connectivity issues in remote areas.
Localization: Implementing features to support the Indonesian language and local educational context.
Integration with Legacy Systems: Developing strategies to integrate with existing government educational systems.