JKB Academic Advising Information System (SIWALI JKB) is a comprehensive academic advising management system designed to streamline the process of managing student performance, counseling, and other academic data for higher education institutions.
The system supports four distinct user roles:
- Admin
- Dosen Wali (Academic Advisor)
- Koordinator Program Studi (Program Coordinator)
- Mahasiswa (Student)
- Can manage all data within the system, except for student performance records and counseling sessions.
- Responsible for user management, including:
- Creating new user accounts
- Assigning roles (Dosen Wali, Koordinator Program Studi, or Mahasiswa) to users
- Manage and input students' semester GPA (IPS)
- Record students who have withdrawn (dropout) or are recipients of scholarships/revised tuition (UKT) reviews
- Document student achievements and organizational activities
- Manage records of students who have been issued warning letters
- Track tuition arrears
- Conduct online academic counseling (bimbingan perwalian)
- Approve or reject reports submitted by Dosen Wali
- View their semester GPA (IPS) and cumulative GPA (IPK)
- Input student achievements and organizational activities
- Participate in online academic counseling (bimbingan perwalian)
- users:Stores user account information, including email, avatar, and password.
- programs: Represents different academic programs offered, including program code, name, degree (D3/D4), and the head of the program.
- classes: Represents classes or cohorts of students, including the academic year, program ID, and academic advisor ID.
- positions: Stores different positions within the institution, such as Academic Advisor and Program Coordinator, including their decree.
- students: Stores information about individual students, including student number, name, contact information, and their class ID.
- lecturers: Contains data about faculty members, including NIDN, NIP, contact information, position ID, and their user ID.
- gpas: Stores GPA information for classes.
- gpas_cumulative: Stores cumulative GPA for individual students, linked to a specific GPA record.
- gpas_semester: Detailed GPA information per semester for each student.
- achievements: Records student achievements.
- achievement_details: Detailed records of individual student achievements, including the type and level of achievement.
- scholarships: Manages information on student scholarships.
- scholarship_details: Detailed records of individual student scholarships, including the type of scholarship.
- guidances: Manages student counseling records.
- guidance_details: Detailed records of individual student counseling sessions, including the problem and solution.
- warnings: Documents warnings issued to students.
- warning_details:Detailed records of individual warnings issued to students, including the type of warning and reason.
- tuition_arrears: Manages records of unpaid tuition fees.
- tuition_arrear_details: Detailed records of individual student tuition arrears, including the amount.
- student_resignations: Manages records of students who have withdrawn from the program within a specific class.
- student_resignation_detail: Detailed records of individual student resignations, including the type of resignation, decree number, and reason.
- reports: Represents reports generated by lecturers, including report date, status, and approval flags from academic advisors and heads of programs.
-
users - students/lecturers: One-to-one relationship. Each user account is associated with either a student or a lecturer.
-
*programs - classes: One-to-many relationship. A program can have multiple classes.
-
classes - academic_advisors: One-to-one relationship. Each class is assigned one academic advisor who is a lecturer.
-
programs - head_of_program: One-to-one relationship. Each program is headed by one lecturer who serves as the head of the program.
-
positions - lecturers: One-to-many relationship. Each position can be held by multiple lecturers.
-
classes - students: One-to-many relationship. Each class can have multiple students.
-
gpas - classes: One-to-one relationship. Each class has one GPA record.
-
gpas_cumulative - students: One-to-one relationship. Each student has one cumulative GPA record.
-
gpas_cumulative - gpas: One-to-many relationship. Each GPA record can have multiple cumulative GPA entries.
-
gpas_semester - gpas_cumulative: One-to-many relationship. Each cumulative GPA record can have multiple semester GPA entries.
-
achievements - classes: One-to-one relationship. Each class can have one achievements.
-
achievement_details - achievements: One-to-many relationship. Each achievement can have multiple detailed records for different students.
-
students - achievement_details: One-to-many relationship. Each student can have multiple achievement.
-
scholarships - classes: One-to-one relationship. Each class can have one scholarships.
-
scholarship_details - scholarships: One-to-many relationship. Each scholarship can have multiple detailed records for different students.
-
students - scholarship_details: One-to-many relationship. Each student can have multiple scholarship_details.
-
guidances - classes: One-to-one relationship. Each class can have one guidance sessions.
-
guidance_details - guidances: One-to-many relationship. Each guidance session can have multiple detailed records for different students.
-
students - guidance_details: One-to-many relationship. Each student can have multiple guidance_details.
-
warnings - classes: One-to-one relationship. Each class can have one warnings issued.
-
warning_details - warnings: One-to-many relationship. Each warning can have multiple detailed records for different students.
-
students - warnings: One-to-many relationship. Each student can have multiple warnings.
-
tuition_arrears - classes: One-to-one relationship. Each class can have one tuition arrears records.
-
tuition_arrears_details - tuition_arrears: One-to-many relationship. Each tuition arrears record can have multiple detailed entries for different students.
-
students - tuition_arrears: One-to-many relationship. Each student can have multiple tuition_arrears.
-
student_resignations - classes: One-to-one relationship. Each class can have one student resignations.
-
student_resignation_details - student_resignations: One-to-many relationship. Each student resignation can have multiple detailed records.
-
students - student_resignation_details: One-to-one relationship. Each student have one student_resignation_details.
-
reports - classes: One-to-many relationship. Each class can have multiple reports.
- The system supports soft deletes (deleted_at column) for most entities, allowing for data recovery and historical tracking.
- Timestamps (created_at, updated_at) are used across all tables for auditing purposes.
- The structure supports complex relationships between courses, lecturers, and students, allowing for flexible academic management.
- GPA, achievements, scholarships, and counseling systems are tightly integrated with the student management aspects of the database.
graph TD;
%% Admin Flowchart
A[Login as Admin] --> B[Manage User Accounts]
B --> C[Create New User]
B --> D[Assign Roles]
C --> E[Assign Role: Dosen Wali]
C --> F[Assign Role: Mahasiswa]
C --> G[Assign Role: Koordinator Program Studi]
D --> E
D --> F
D --> G
A --> H[Manage System Data]
H --> I[Create/Edit/Delete Programs]
H --> J[Create/Edit/Delete Student Classes]
graph TD;
%% Dosen Wali (Academic Advisor) Flowchart
L[Login as Dosen Wali] --> M[Manage Student GPA]
M --> N[Input Semester GPA]
M --> O[Record Student resignations]
M --> P[Document Student Achievements]
M --> Q[Manage Scholarships]
M --> R[Manage Counseling Sessions]
M --> S[Manage Warnings]
M --> T[Track Tuition Arrears]
graph TD;
%% Koordinator Program Studi (Program Coordinator) Flowchart
U[Login as Koordinator Program Studi] --> V[Approve/Reject Dosen Wali Reports]
V --> W[Review Student GPA Reports]
V --> X[Review Counseling Sessions]
V --> Y[Review Scholarships and Warnings]
graph TD;
%% Mahasiswa (Student) Flowchart
Z[Login as Mahasiswa] --> AA[View GPA Records]
AA --> AB[View IPS and IPK]
Z --> AC[Input Achievements and Activities]
Z --> AD[Participate in Counseling Sessions]
- Clone the repository:
git clone https://github.com/Protic-PNC/jkb-sistem-perwalian.git
cd jkb-sistem-perwalian
- Install dependencies:
composer install
npm install
npm run dev
- Set up the environment:
Copy the .env.example file to .env and update the necessary environment variables.
cp .env.example .env
php artisan key:generate
- Run database migrations:
php artisan migrate
- Seed the database:
php artisan db:seed
- Start the development server:
php artisan serve
After completing the installation steps, you can access the application by navigating to http://localhost:8000 in your web browser. Log in with the credentials created during the seeding process.
The application uses Laravel Breeze for authentication. You can log in with the default super admin credentials:
- Email: -
- Password: -
We welcome contributions to this project! Please follow these steps to contribute:
Fork the repository:
-
Click the "Fork" button at the top right corner of this page to create a copy of this repository under your GitHub account.
-
Clone your forked repository:
git clone https://github.com/your-username/jkb-sistem-perwalian.git
cd jkb-sistem-perwalian
- Create a new branch:
git checkout -b feature/your-feature-name
- Make your changes and commit them:
git add .
git commit -m "Add a detailed description of your changes"
- Push to your forked repository:
git push origin feature/your-feature-name
- Create a pull request:
Open your forked repository on GitHub, select the new branch you created, and click "New pull request." Provide a clear description of your changes.
For any questions or concerns, please contact the project maintainers at:
Email: afrizalfajri23@gmail.com
GitHub: Protic-PNC