A java swing application for a project for the AFDemp Java Bootcamp 7. It is a private school entity that can be accessed by 3 different roles. Headmaster, trainer, student, each with their own set of functionalities.
Created by Sakellariou Panagiotis
Installation instructions :
1. Run sql server
2. Execute project and log in as admin with credentials : username -> admin , password -> ILoveJava
Make sure you have no database with the name "privateschool2". If you do, you can change the database name of this project at line 62 of file src/controller/DBAccess.java but you will also have to change the name in the sql scripts /src/db_script.sql and /src/db_script_with_data.sql
At line 64 of file src/controller/DBAccess.java you can change the database user credentials. Default is root with no password.
The database with the dafault name "privateschool2", or the one you provided, and all the tables, keys, indexes, records etc. will be created automatically, prepopulated for convenience. You can find the data script at /src/db_script_with_data.sql . If you want to enter the data manually, you can change the sql script to /src/db_script.sql at line 272 of file src/controller/DBAccess.java
The next steps are needed only if you execute the project the first time with the /src/db_script.sql script
In order to manually fill the program with data you need to :
1. log in as admin. The admin user is created automatically if he doesn't exist
2. Create courses
3. Create trainers
4. Create students
5. Add trainers and students to courses you created on step 1 (this is a good opportunity to also add schedule entries to the courses. Adding trainers, students, schedule entries is on the same course editing panel)
6. Create assignments for the courses ( this step is important to happen AFTER you have added students to the course for which the assignment is for. Any student that gets added to the course AFTER the assignment's creation, either by the admin or by the student himself joining the course, will not get his personal assignment. So basically for a student to get his personal assignment, he must have joined or been added to the course AT THE MOMENT of the main assignment's creation. Main assignments are created only by the admin and they reside in table 'assignments' and they have a FK pointing to 'course' table PK. A course can have many assignments. Table 'assignments_students' holds the persornal assignments of the students, and it has an FK to 'assignments' PK and an FK to 'students' table PK. A student can have many personal assignments. A main assignment can have many personal assignments ) ALSO, don't forget to click the Update button when adding stuff to courses.
After that you can log in with the credentials of the trainers and/or students that you provided, gaining access to their respective GUI. Trainers can mark assignments. Students can see their schedule, if any, can submit their assignments, if any, and can join courses, if any.
Exceptions Notice: Some exceptions are left unchecked on purpose. Like for example, if you try to create a new student or trainer with a username that already exists (usernames must be unique), an exception is left to be thrown, because normally the user would have to be informed at that point accordingly, but.... no time to implement everything.
Access Levels: Headmaster, Trainer, Student.
Credentials for autogenerated users
Headmaster admin ILoveJava
Trainers trainer1 trainer1 . . . trainer9 trainer9
Students student1 student1 . . . student30 student30