- Langauge: java
- Contributor:
- Allen: Boundary & Control Classes Coding in Java, UML Sequence diagram.
- Deryl: UML Class diagram.
- Hong Xun: Testing Functionality, Entity Classes Coding in Java.
- Jeremy: Wrote Report, Utility Class Coding in Java (UIHelper.java and ControlUtils.java)
- Teja: Provided Filtering Algorithm.
- How to use:
- Download
- Download empty-database version for a fresh start of the program. [Downlaod Link]
- Download presentation version to present directly. [Downlaod Link]
- Run the Program
- Windows: Distract the zip file you just download, right click on
run.ps1, and clickRun with Powershell
- Windows: Distract the zip file you just download, right click on
- Download
This is a desktop application built in Java that helps manage internship opportunities between students, companies, and career staff at a university. It handles the entire process from posting internships to students accepting offers.
- Multi Window: Allow multiple terminal windows run side by side, no delays.
- Complete workflow: Handles the entire internship process from start to finish
- Role-based access: Each user type sees only relevant features
- Real-time validation: Prevents common errors like double-applications or overbooking
- Detailed reporting: Staff can analyze trends and generate professional reports
- User-friendly: Simple GUI interface.
- Browse Internships: View available internship opportunities matching your major
- Apply for Internships: Submit applications to internships that match your major
- Track Applications: See the status of your applications (pending, approved, rejected)
- Accept/Reject Offers: Once approved, you can accept or decline the internship offer
- Withdraw Applications: Cancel your application if you change your mind
- View Applied Internships: See all internships you've applied to in one place
- Post Internships: Create new internship opportunities with details like:
- Job title and description
- Required majors (can select multiple)
- Difficulty level (Basic, Intermediate, Advanced)
- Number of available slots
- Start and end dates
- Manage Applications: View and respond to student applications
- Approve/Reject Students: Accept or decline applications for your internships
- Set Visibility: Control whether your internship is visible to students
- Oversee Everything: View all internships and applications in the system
- Handle Withdrawals: Approve or reject student withdrawal requests
- Generate Reports: Create detailed reports about internship statistics including:
- Number of internships by level and company
- Popular majors for internships
- Acceptance rates and slot utilization
- Filtered reports by company, major, level, or date range
- Users log in with their ID and password
- The system recognizes whether you're a student, company rep, or staff member
- Each user type sees different menus and options
- Company representatives can register new accounts themselves
- Company posts internship with requirements and details
- Students browse and apply to internships matching their major
- Company reviews applications and approves/rejects candidates
- Students receive notifications and can accept or reject approved offers
- System tracks everything and prevents conflicts (like accepting multiple internships)
- All information is stored in CSV files on your computer
- Includes separate files for users, internships, applications, and majors
- Uses escaping and unescaping methods to deal with special cases contain quotes and commas
- Reports are generated as Markdown files with tables and statistics
- Automatic slot management: When an internship fills up, remaining applications are auto-rejected
- Duplicate prevention: Students can't apply to the same internship twice
- Acceptance blocking: Once a student accepts an internship, they can't apply to others
- Filter preservation: Reports show what filters were used for transparency
The application uses Java Swing with simple button-based menus:
- Main menu for each user type with clearly labeled buttons
- Dialog boxes for entering information (forms, confirmations)
- Tables for viewing lists of internships and applications
- Multi-select lists for choosing companies and majors in reports
Built with: Java Swing for desktop interface
Data storage: CSV files (no database required)
Security: Password hashing with SHA-256 and salt
Reports: Generated as Markdown files with statistics and charts
Architecture: Separate layers for business logic, data storage, and user interface
This system replaces manual processes like email chains and spreadsheets with an organized, automated solution that reduces errors and saves time for everyone involved.