Name: checkresult Purpose: A PHP-based software designed to allow students to check their academic results online. It is intended for use by schools and colleges. Current Status: Core refactoring complete. Includes a new installation script for easier setup, dynamic subject handling, and admin functionality for subject management. Developer: W3Techy (as per README.md)
The application consists of several PHP scripts and supporting files:
install.php: New installation script. Guides the user through database configuration, site settings, and initial schema setup. Createsconfig.php,site_meta.php, andinstall.lock.config-template.php: Template used byinstall.phpto generateconfig.php.config.php: Database connection configuration (MySQL). Generated byinstall.php.site_meta.php: Stores site-specific metadata like Site Name and Description. Generated byinstall.php.index.php: User login page. Handles authentication usingexam_numberandpin.session.php: Manages user sessions.header.php&footer.php: Common HTML header and footer.header.phpnow usesSITE_NAMEandSITE_DESCRIPTIONfromsite_meta.php.result.php: Displays consolidated, dynamic results for the logged-in user.style.css: CSS file for basic styling.sql/directory: Contains SQL dump files for database table creation:user.sql,subjects.sql,results.sql.
admin/directory: Contains administration-specific files.admin/index.php: Admin dashboard.admin/admin_header.php&admin/admin_footer.php: Common admin UI elements.admin_header.phpalso usesSITE_NAME.admin/manage_subjects.php: Interface for admins to add and view subjects.
install.lock: Marker file created after successful installation to prevent re-runninginstall.php.
- PHP: Server-side scripting language (version supporting
mysqliextension). - MySQL: Relational database management system.
- Web Server: Capable of running PHP (e.g., Apache, Nginx) with write permissions to the application root during installation (for
config.php,site_meta.php,install.lock). - Web Browser: For user and admin interaction.
- Installation:
- A web-based installer (
install.php) guides first-time setup:- Collects database credentials and site metadata.
- Creates
config.phpandsite_meta.php. - Sets up the database schema (
user,subjects,resultstables). - Secures the installation by creating
install.lock.
- A web-based installer (
- User Authentication: (As before, using
exam_numberandpin). - Result Display: (As before, dynamic results from
resultsandsubjectstables). - Print Results: (As before).
- Admin Subject Management:
- Basic admin area (
admin/) allows viewing and adding new subjects to thesubjectstable viaadmin/manage_subjects.php. (Currently no admin authentication).
- Basic admin area (
userTable (sql/user.sql):exam_number(PK),pin.subjectsTable (sql/subjects.sql):subject_id(PK),subject_name(UNIQUE).resultsTable (sql/results.sql):result_id(PK),exam_number(FK),subject_id(FK),score,grade,remarks.
- First-time User/Admin: Runs
install.phpto set up the application. - Student User: (As before: login, view results, print).
- Admin User: Navigates to
admin/to manage subjects (view, add).
- Deploy all project files to the web server.
- Ensure the web server has write permissions to the application's root directory.
- Navigate to
install.phpin a web browser. - Follow on-screen instructions to provide database details and site settings.
- Upon successful installation,
config.php,site_meta.php, andinstall.lockwill be created. - It's recommended to manually delete
install.phpafter successful setup for enhanced security.
- Copy files to server.
- Ensure
config.phpandsite_meta.phpare present and correctly configured. - Ensure database is set up as per the schema in
sql/files. - (No
install.phporinstall.lockneeded if already installed and configured).
- Installation Process: Requires thorough manual testing on a clean environment, including error conditions and successful setup. Verification of file creation (
config.php,site_meta.php,install.lock) and database schema is critical. - Admin Functionality: Manual testing of subject management in the admin area.
- User Functionality: (As before: login, result display).
- Correct Database Schema & Result Logic: (Addressed)
- Consistent User Identifier: (Addressed)
- Dynamic Subject Handling: (Addressed)
- Basic Admin - Subject Management: (Partially Addressed) - Viewing and Adding subjects implemented. Lacks Edit/Delete and authentication.
- User-Friendly Installation: (Addressed) - New
install.phpscript.
- Admin Authentication: Secure the
/admindirectory and its functionalities with a login system. - Full Admin CRUD for Subjects: Add Edit and Delete functionality for subjects in
admin/manage_subjects.php. - Admin Management for Users & Results: Create interfaces for admins to manage student users (add, edit PINs) and their results.
- Robust Input Validation & Sanitization: Comprehensive review and implementation across all user inputs.
- Improved Error Handling: Centralized and user-friendly error display; server-side logging.
- Secure
config.php(Post-Install): Whileinstall.phpcreates it, advise on moving it outside webroot if possible. - UI/UX Modernization: For both public and admin interfaces.
- PIN/Password Security: Hash PINs in the database (
password_hash(),password_verify()). Implement "Forgot PIN". - User Profile Information: Display student's name, etc.
- Explicit Logout Functionality.
- Automated Testing: Unit tests, integration tests.
- Version Control: Consistent Git practices.
- Templating Engine (Optional).
This plan reflects the addition of the installer and the current state of the application.