USPEnrol is a web application designed to streamline enrollment services for students and administrators at the University of the South Pacific (USP). It provides functionalities for students to manage their course enrollments and submit various applications (e.g., grade recheck), while enabling administrators to manage student data, courses, and process applications.
For Students:
- Secure Registration: Students can register for an account, with their email automatically generated based on their student ID, and their password set to their student ID for initial login.
- Personalized Dashboard: Access to relevant information and services after logging in.
- Course Enrollment: Ability to view available courses and potentially enroll (if implemented).
- Online Application Forms: Submit various applications, such as the "Application for Reconsideration of Course Grade", with pre-filled personal details.
- Email Notifications: Receive email confirmations and updates (e.g., upon registration, application status).
For Administrators:
- User Management: (Assumed) Ability to manage student and administrator accounts.
- Application Review: (Assumed) Process and manage student applications.
- Grade Management: (Assumed) Functionality to manage student grades.
- Framework: Laravel 12
- PHP Version: 8.4.1
- Database: MySQL
- Frontend: Blade Templates with Livewire (for dynamic components)
- Styling/UI: Flux components (implies Tailwind CSS)
- Email Services: Gmail SMTP
- PDF Generation: Integration for generating PDF documents (e.g., application forms, receipts).
- Roles & Permissions: Spatie Laravel Permission Package (implied by roles mention).
Before running this project, ensure you have the following installed on your system:
- PHP: Version 8.4.1 or higher
- Composer: Latest version
- Node.js & npm (or Yarn): Latest LTS version
- MySQL: Database server
- Web Server: Nginx or Apache (or use Laravel's built-in
composer run dev)
Follow these steps to get the USPEnrol project up and running on your local machine:
-
Clone the Repository:
git clone <repo-url> cd USPEnrol
-
Install PHP Dependencies:
composer install
-
Create and Configure Environment File:
cp .env.example .env
Open the
.envfile and configure your database connection and mail settings:DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=uspenrol_db # Choose your database name DB_USERNAME=root # Your MySQL username DB_PASSWORD= # Your MySQL password MAIL_MAILER=smtp MAIL_HOST=smtp.gmail.com MAIL_PORT=587 MAIL_USERNAME=your_gmail_username@gmail.com # Your Gmail address MAIL_PASSWORD=your_gmail_app_password # Your Gmail App Password MAIL_ENCRYPTION=tls MAIL_FROM_ADDRESS="<{MAIL_USERNAME}"
MAIL_FROM_NAME="{APP_NAME}" ``` * Note on Gmail App Password: If you're using Gmail SMTP, you'll likely need to generate an "App password" from your Google Account security settings, as regular passwords often don't work for SMTP authentication anymore.
-
Generate Application Key:
php artisan key:generate
-
Run Database Migrations and Seeders: This will create the necessary tables and populate them with initial data, including the admin user and student data.
php artisan migrate --seed
- Important: This command assumes your
DatabaseSeeder.phpcalls the necessary seeders forroles,admin user, andstudent data.
- Important: This command assumes your
-
Install Node.js Dependencies and Compile Assets:
npm install npm run dev # For development (or npm run build for production)
Once all installation steps are complete, you can run the application:
-
Start the Laravel Development Server:
composer run dev
This will typically start the server at
http://127.0.0.1:8000. -
Access the Application: Open your web browser and navigate to the URL provided by
composer run dev(e.g.,http://localhost:8000).
-
Administrator:
- Email:
admin@admin.com - Password:
admin - Purpose: Manages the system, users, courses, and applications.
- Email:
-
Student:
- Registration: New student accounts are created via the registration page. The email is automatically
[student_id]@student.usp.ac.fj, and the password is thestudent_id. - Credentials: Check your
StudentSeederfile for details on any pre-seeded student accounts or generate new ones through the registration form. - Purpose: Accesses enrollment services and various application forms.
- Registration: New student accounts are created via the registration page. The email is automatically
(Optional) If you wish to contribute to this project, please follow standard Gitflow practices:
- Fork the repository.
- Create a new branch for your feature or bug fix.
- Commit your changes.
- Push to your fork and submit a pull request.
Feel free to customize any section further based on your specific implementation details!