This project is a desktop application converted from an original PHP-based web application. It provides a comprehensive system for managing student academic records, including classes, subjects, student details, and results. The back-end is powered by a Node.js server with an Express API, and the front-end is built using Electron to create a cross-platform desktop experience.
The project is currently in progress. The core architecture has been established, and foundational features are functional.
- Application Architecture: A clean separation between the Node.js
server, theelectron-appfront-end, andsharedassets. - Server & Database: The Node.js server starts reliably, connects to the MySQL database, and includes a logging system (
server.log). - User Authentication: The admin login functionality has been fully converted and is operational.
- Dashboard: The main dashboard view has been converted, successfully fetching and displaying dynamic statistics from the database via an API endpoint.
- CRUD Operations: All functionality for creating, reading, updating, and deleting data (e.g., managing students, classes, subjects, results) still needs to be converted from PHP to Node.js API endpoints and Electron front-end pages.
- Back-End: Node.js, Express.js
- Front-End: Electron, HTML5, CSS3, JavaScript
- Database: MySQL
- Key Libraries:
mysqlfor database connection,md5for hashing (legacy).
The project is organized into three main directories to ensure a clean separation of concerns:
//Student-Result-Desktop/ ├── electron-app/ # Contains all front-end code (Electron main process, windows, UI pages) │ ├── main.js │ ├── preload.js │ └── renderer/ │ └── pages/ ├── server/ # Contains all back-end API code (Node.js, Express) │ ├── app.js │ ├── server.log │ ├── config/ │ ├── controllers/ │ └── routes/ ├── shared/ # Contains all shared static assets like CSS and JS libraries │ ├── css/ │ └── js/ └── README.md
Follow these steps to get the application running on your local machine.
- Node.js: Version 18.x or higher.
- MySQL: A running MySQL server (like XAMPP, WAMP, or a standalone instance).
- Open your MySQL management tool (e.g., phpMyAdmin).
- Create a new database named
srms. - Select the
srmsdatabase and import theStudentResult/DB/srms.sqlfile to create the necessary tables.
- Clone this repository to your local machine.
- Install server dependencies:
cd server npm install - Install Electron front-end dependencies:
cd ../electron-app npm install
- To start the application, run the following command from the
electron-appdirectory:npm start
This will automatically start the Node.js server and then launch the Electron desktop application.
Default Admin Login:
- Username:
admin - Password:
admin(Note: This is from the originalREAD ME.txtand is MD5 hashed in the database).
The next phase of development will focus on converting the remaining PHP files into functional modules within the new architecture.
- Manage Classes: Convert
manage-classes.php,create-class.php, andedit-class.php. - Manage Subjects: Convert
manage-subjects.php,create-subject.php, andedit-subject.php. - Manage Students: Convert
manage-students.php,add-students.php, andedit-student.php. - Manage Results: Convert
manage-results.php,add-result.php, andedit-result.php. - Change Password: Convert
change-password.php.
This project is licensed under the MIT License.