Pages

Saturday, December 30, 2017

School Management System 1.0.0.0



School Management System

PDF Document: https://goo.gl/j3HNbm

School Management System is an information system created in Java programming language using Eclipse IDE. The information system is a desktop application and it has an implementation of a local SQLite database. The project was built in about a month, starting on 22nd November of 2017. As the application title says, it helps to manage school systems for primary schools, high schools, universities, courses or any other school facilities.

Login

Users are required to have a registered account for logging into the information system. There are few user account types (roles): administrator, director, teacher, student and parent. All accounts have defined rules and permissions for accessing specific forms and modifying data. Only administrator users can manage accounts.

Default login details for administrator user are:
Username: admin
Password: 1234

Dashboard

The dashboard will display a welcome message after a successful login. It will show different buttons and menus, depending on the role of logged user account. The dashboard shows buttons for editing and information of total number of students, teachers, parents and presence on the top and menu buttons for viewing and searching items on the left. The menu buttons on the left let users search for students, teachers, parents, subjects, sections, classes, exams, attendance, marks, statistics, reports and settings a lot faster and much easier. Students and other items can be easily found by typing text into the search box.

Editing Data

Only users that have permissions for editing data can open data form editors. For example, administrator and director user roles can edit specific data while others cannot. Other user roles can only view data where they meet required permissions. Data form editors contain four buttons for editing data: new, add, change and delete. Clicking on the “new” button will empty all data input fields and restore default values for combo boxes and other controls. Add button lets user insert data into the database with specified values from the input fields. Table is used for displaying items from the database. When user selects a row in the table, change and delete buttons will be enabled. Change button is used for updating data and delete button is used for removing selected row from the database. There are sort options on the menu that enable sorting rows by different columns in the ascending or descending order. This is an important notice: input form dialogs can contain fields that are unique, required and they must not have null value. Invalid values cannot be processed.

Editing Students

Student data is divided to five groups: personal, picture, birth, parents and contact info. Personal info requires first name, last name, gender, class and account. Gender can be selected from the combo box list, classes can be selected by pressing “Select Class” button. If the buttons for selecting data are disabled it means there is no data found and administrator must first input (edit) some data for the given field.

The data displayed on the table below can be sorted by various criteria. Reports can be opened, saved to PDF, Excel, Word or other document types and printed by pressing the “Report” button. Hide input button lets user hide input fields and it enables greater transparency for the table.

Students must have an account before administrator can change their profile picture because it is linked with the account in the database. The data type for image files in the database is BLOB. That means images must be converted and stored as byte array in the database. After changing student profile picture, a small thumbnail image with size of 128 by 128 pixels will be also stored into the database and it will be used as a cache for profile pictures. That enables much faster data processing where it is required. For example, students can be searched a lot faster on the dashboard when smaller images are used for displaying their profile pictures. All images can be exported from the database and saved to PNG image format.
Every editor displays the number of total rows/items on the bottom left of the window.

Birth info contains date of birth, UMCN (also known as JMBG) which can be 13 characters long, municipality of birth, place of birth and nationality. The date format is “dd-MM-yyyy”. It can be also changed with popup dialog by pressing the “Select Date” button. UMCN field is unique and it is required.

Parents can be connected to the students in the database that will enable them to find their children. Also, this can be very useful feature when parents want to view marks of their children. Profile pictures of parents are automatically loaded when they are selected. Parents can be managed by clicking on the “Edit Parents” button.

Contact information such as addresses, E-Mails and phone numbers can be also set for specified students, teachers and parents. E-Mail and phone fields are optional.

Editing Teachers/Parents

The input forms for teachers and parents are almost same as for students. So, there is no need to explain something additional about it.

Editing Presence

Data fields required for presence are: subject, exam, student and presence status. The presence status can be “present” or “absent”. There are two kinds of presence editors. Teachers cannot edit presence for the subjects that they do not teach while administrator users can edit presence for all subjects and all students.

Managing Accounts

Only administrator users have permissions to edit user accounts. User details are username, password and type (role). There are multiple user roles and the user accounts with the matching user types can be linked with students, teachers and parents. To link user accounts with students, teachers and parents, user can open edit dialogs for them and select a corresponding account with a matching user role.

Account usernames are unique which means that every account must have a different username.

All user accounts can have a profile picture even if they are linked or not to the students, teachers and parents.

Changing Profile Picture

There can be multiple profile pictures stored in the database for one account but only one can be in use. The unused profile pictures can be used again or removed from the database by the user who has permission to manage them. Supported file formats for images are JPEG, GIF and PNG. Profile pictures can be exported and saved to files. It is also possible to copy pictures to the clipboard by clicking on “Edit - Copy” menu. Clicking on “Preview” button will load and display larger (original size) image from the database. Default size for a small cached profile picture image is 128 by 128 pixels.

Profile picture for the active user account can be change on “Accounts – Change Profile Picture” file menu on the main window. Not all users have permission to change profile pictures, for example, students and parents.

Editing Classes

Input fields for classes are class name, section, class teacher and grade system. It is very important to choose a grade system when marking students.

Editing Sections

Sections are used for dividing classes.

Grade Systems

Every class can have one grade system. Currently, there are three grade systems in the database: none, 1 to 5 and 1 to 10. The 1 to 5 grade system is applied for primary and high schools while the 1 to 10 grade system is for universities. It is very important to set a grade system for every class.

Date Input Dialog

The date input dialog displays combo boxes for selecting day, month and year. Clicking on the “OK” button will return date in this format: “dd-MM-yyyy”.

This is a custom made dialog that helps input a date. Combo box change listeners are triggered when user changes values and it helps to prevent inputting an invalid date. For example, number of days are counted and checked for every month and year.

Editing Addresses

Required data for addresses is: address name, town and country. Towns and countries have editors, also.

Addresses are linked to towns and towns are further linked to countries. This is an example of a multiple relationship model.

Editing Towns

Towns have name and country fields.

Towns are linked to countries.

Editing Countries

Countries have name and short name fields. Short name is used for displaying country for the addresses in the reports.

Editing Subjects

Subjects have following fields: name, short name, code, class and teacher. Code field is unique and required.

Subjects are linked to classes and teachers.

Editing Exams

Exams contain fields for name, date and subject.

Exams are linked to subjects. Subject code is used for increased orientation.

Editing Marks

This is an editor for administrator and director user roles. Required fields for marks are following: exam, student, mark and date. Mark must be based on the integer value with the matching grade system.

Marks are linked to exams and students.

These are grade systems that are implemented in the application:
Grade System 1 to 5: if mark equals to 1, then student has failed, otherwise student has passed the exam.
Grade System 1 to 10: if marks are below or equal to 5, then student has failed, otherwise student has passed the exam.

Student Dashboard

Student dashboard shows basic information for students and options for editing students, viewing profile picture and viewing (generating) CV. Student dashboard is very similar to the teacher and parent dashboard. The basic information for students displays first name, last name, gender, UMCN, address, E-Mail and phone. Students and other items can be selected by checking the check box on the left. Then administrator or director user can remove selected students by clicking on the remove button on the bottom. Clicking on “Remove All” button will remove all displayed items. Of course, a confirmation dialog is shown first before taking these actions.

Buttons for removing students, teachers and parents are visible only for administrator and director user roles. Other users do not have permissions to modify this.

Image Viewer

Image viewer is used for viewing user profile pictures. Actually, it was made as another form dialog for profile pictures but to prevent other users from changing them. Image viewer displays image description which can be username or name on the top and image in the center. Viewed images can be saved to file with supported image format.

The displayed image will be scaled to 450 by 450 pixels with kept aspect ratio.

CV

CVs can be automatically generated and saved to PDF document. CV fields are divided to four sections: personal, birth, contact and parents. Images and other data are loaded from the database.

A small scaled image is displayed as profile picture on the CV document.

Statistics and Reports

There are few basic statistics and reports currently designed and programmed in the application. Pie chart dialogs are used for viewing data statistics and reports are designed in XML using additional library. The application uses JasperReports library for creating and managing reports while JFreeChart library is used for chart diagrams. Both libraries are free for use.

Parameters and other values must be defined in the XML report files first then they can be passed using HashMaps as function arguments in the Java code. JasperReports will try to compile the given report and dialog will be shown with designed table fields when it completes compiling. Table fields can be different data types such as Integer, String, Object and other. JasperReports library enables saving reports to various document type formats including PDF, Word, Excel, XML and many more. Reports are configured to be more readable. Some of them are designed to be in the portrait orientation and the other are designed to be in the landscape orientation, depending on the report content. Reports can have multiple pages. Document title, page numbers and dates are shown on the document. For some reports, total number of items is displayed on the top left corner.

There are few reports designed for printing accounts, addresses, classes, countries, exams, marks, parents, presence, sections, students, subjects, teachers and towns. Clicking on “Open Report” button will open the report dialog with loaded values from the database.

Users that have permissions can open reports for single student, teacher, parent, subject, section, class, exam, attendance and mark. This option is useful for creating CV documents, exam and subject lists, etc.

Accounts Report

This is a list of all created accounts that is visible only to administrator users. Other users do not have permission to open or view this report. It shows columns for account ID, username, password and type (role).

Addresses Report

Addresses report displays columns for address ID, name, town and country.

Settings

There are two items for settings in the application: language and manage accounts. School Management System is available currently only on English language. Settings for managing accounts are available only for administrator users.

Changing Password

User must know current password in order to set a new password. This also helps in preventing other unauthorized users changing passwords for the active accounts. User can change password by clicking on “Accounts – Change Password” file menu on the main window.

Administrator users can change everyone’s password in the “Manage Accounts” window.

Teacher Dashboard

Teacher can edit presence and marks for students when logged in. When presence is updated, number of today present is updated, too. Teacher has permissions only for accessing own subjects. Special editors for editing presence and marks are designed only for teacher users.

The permissions do not allow teachers to modify students, teachers, parents and other items.

Presence Editor

Presence editor lets registering presence for teachers a lot simpler and faster. The first step to record a presence is to select a class, then select subject and select exam. When class is selected, subjects for the given class and teacher are loaded. So, this allows teacher to choose only own subjects and exams. The editor displays student’s profile picture with basic information. Presence is easily recorded by selecting the checkboxes on the left for every student and pressing the “Apply Presence” button on the bottom. Number of present, absent and total students is shown at the bottom, too. Students can be sorted by first name, last name, gender, UMCN (JMBG), address, email and phone. It is possible to record only one presence for one exam.

All students for the specified class are loaded when user chooses the class. When user applies presence, values are inserted into the database if they do not exist and updated if they exist.

Mark Editor

Mark editor is a very similar editor to the presence editor. Marks are displayed in the text fields with a little bigger and bolder font. Marks can be selected by pressing buttons next to the mark text field. If mark is cleared, it will be removed from the database when user clicks on the “Apply Marks” button on the bottom. Only one mark can be recorded for one exam.

Number of passed and failed students is automatically calculated when marks are updated. For example, if grade system is 1 to 5, failed students are those who have minimum mark 1 and passed students are the rest.

Conclusion

School Management System is a desktop application that currently offers basic functions for managing any kind of school system. It is ready for use and implementation for the school facilities. The basic functionality for data processing is programmed and it needs much more improvement. In the future, this project can be a lot more improved with many additional features such as connection to the MySQL database server and Android application that will enable higher mobility and greater availability to the users. This is only a basic concept idea for the information system and it needs regular updates. All additional needs and requirements have to be studied and implemented from time to time. For example, library, payments and other managing methods can be added into the information system. This project must continue with development status to be alive.

Project Specifications

Name: School Management System
Type: Information System (Desktop Application)
Language: English
Programmer: Nihad Liu Karajko
E-Mail: nihadliu@gmail.com

Version: 1.0.0.0
Starting time: 22.11.2017
Ending time: 27.12.2017

Programming language: Java
Software tools: Eclipse IDE
Database: SQLite
Libraries: SQLite JDBC, JasperReports, JFreeChart

Code lines: 40700+
Packages: 13
Classes: 101
Database tables: 19

Project size: 29.8 MB
JAR file size: 20.1 MB

Tuesday, November 14, 2017

File Encrypt 1.0.0.0



Java application for encrypting files using Advanced Encryption Standard cipher. Files can be encrypted only if user specifies key (password), otherwise files will be saved without encryption. If user types wrong password when opening encrypted files, the files will not be decrypted. This is actually a small Notepad-like application and I wanted to make something that I will be using in my future projects such as games where game resources like images, music, sounds, maps, JSON and other files could be encrypted to protect the game content. SHA-1 encryption could be combined with AES for further improvement of data protection.

Saturday, November 11, 2017

Butterfly



Butterfly - my new 3D cross-platform demo game for desktop and Android devices created in Java programming language using Eclipse IDE. Game controls are W/A/S/D keys for movement, K key for shooting, J key for picking up lightweight items and Shift key for flying straight. The butterfly can fly forward and backward. The first mission is to fly through all checkpoints and to find the lost key in the flowers before time runs out. Collision detection is created with lots of bounding boxes that are cached for a lot better game performance. Movement is done using basic trigonometry functions such as sine and cosine. The camera follows player location and rotation. The map is surrounded with bricks because I don't want the butterfly to fly away. 3D game objects are created in Blender and saved to FBX format which must be converted to G3DB format using special tool. G3DB format supports animations and that is the new thing I learned to make recently. Bricks and grasses are made using single 3D plane object with texture that repeats on x and y axis for better game performance. Flowers are made using 2 separated meshes: stem and flower. The game has "addFlower" function that adds flower game objects to the map with specified x, y and z coordinates, flower color and number of stems. This game is maybe only a small test and I will make it a little better if I decide to keep working on this project.

Sunday, October 29, 2017

Path Finding



Testing my new improved algorithm for path finding. It is much faster than before and maybe I will be using it for some of my future projects. Collision detection is optimized by merging multiple background objects into one border object and only borders are used for collision checks. Background objects and borders are saved to separated JSON files with map editor tool so that way collision detection can be up to 10 times faster. The path area is saved after it gets done with searching for the first time. The numbers indicate path steps from player to the destination point. Computer players can follow the path to find and attack the player. There are still many ways to optimize path finding but I don't think that is what I am gonna need right now because game maps will not be that huge. This is a cross-platform game demo and it needs a few more tests on Android devices.

Monday, October 23, 2017

Speed Project Generator 1.0.0.3



The new version of tool for generating cross-platform games has ability to generate on-screen controls for Android devices now. It can generate racing and touchpad controls for playing different kind of games.

Wednesday, October 18, 2017

Tuesday, October 17, 2017

Speed Project Generator 1.0.0.1



Speed Project Generator needed a new update and here it is with more tabs, options and few bugs fixed. It is possible to set custom icons for Android projects now and they will be automatically resized from LDPI to XXXHDPI icon size.