View on GitHub

Campus Careers

Connecting UH Mānoa students with internship and job opportunities.

Overview

Many UH Computer Science and Engineering students want to learn about internship and job opportunities, but currently, they must wait until a company reaches out with a visit or announcement. There is no centralized way for students to explore the landscape of opportunities and prepare in advance.

Campus Careers solves this by offering a new way for local and non-local companies to share potential opportunities with UH students. It also allows students to showcase their interests and get matched with companies looking for their skill sets.

Team

Goals

The goal of Campus Careers is to:

Features

Campus Careers

User Guide

1. Landing Page

2. Login / Sign Up Page

3. Student Home Page

4. Company Listing Page

5. Browse Skill / Location Page

6. Create Company Page

7. Administration Edit Page

Developer Guide: Setup

CLONE THE REPOSITORY

Clone the repository to your local machine using Git.

git clone https://github.com/campus-careers/campus-careers-app.git
cd your-repo-name

INSTALL DEPENDENCIES

Install Node.js and npm (if not already installed):

Install PostgreSQL:

Make sure you have Node.js (v18+) and npm installed. Then install the project’s dependencies:

npm install

SET UP THE ENVIRONMENT FILE

Create and configure your local environment file:

cp sample.env .env  # Use `copy sample.env .env` on Windows

Update the DATABASE_URL in the .env file:

DATABASE_URL=postgresql://<username>:<password>@localhost:5432/your-database-name?schema=public

Tip: If you don’t have a PostgreSQL user yet, you can create one using:

createuser your-username --pwprompt

Then grant it access to the database if needed.

Copy the example environment file and edit it with your settings:

cp sample.env .env

Update the DATABASE_URL in the .env file:

DATABASE_URL=postgresql://<username>:<password>@localhost:5432/your-database-name?schema=public

DATABASE SETUP (PostgreSQL + Prisma)

Make sure PostgreSQL is running locally before running these commands. If you’re using Windows and don’t have CLI tools like createdb, consider using pgAdmin or DBeaver.

1. Create the database:

createdb your-database-name

2. Run migrations to set up tables:

npx prisma migrate dev

3. Seed the database with sample data:

npx prisma db seed

Tip: Ensure that you have a valid seed file defined in prisma/seed.ts or prisma/seed.js. If not set up, seeding will fail. See Prisma docs: https://www.prisma.io/docs/guides/database/seed-database

npx prisma db seed

CODE LINTING AND FORMATTING

Run ESLint to check the codebase for errors and style issues. This helps maintain code quality and consistency.

npm run lint

STARTING THE DEVELOPMENT SERVER

This command runs the Next.js development server. By default, it starts at http://localhost:3000 Open your browser and go to that URL to view the app.

npm run dev

TESTING THE APPLICATION (Manual Verification)

To test if the app works:

  1. Open a terminal.
  2. Run the development server with npm run dev.
  3. Open your browser and go to: http://localhost:3000
  4. Navigate through the app and verify the landing page and features are loading properly.

Developer Guide: Prisma Schema

Enums

AdminList

Represents a list of administrative users with their contact and profile details.

Fields

Company

Represents a company or organization. This model holds details about the company, such as name, location, salary, and available jobs.

Fields

Relationships

ContactMessage

Represents a contact message sent by a user to the system. It includes the sender’s name, email, and the message.

Fields

Filter

Represents a filter used to search or categorize users based on skills and locations.

Fields

Interview

Represents an interview between a student and a company. It includes details such as the date, company, and any notes.

Fields

Relationships

Location

Represents a specific location. This model contains unique location names.

Fields

Relationships

SkillEntry

Represents a unique skill that can be associated with users, companies, or job listings.

Fields

Student

Represents a student profile in the system. It includes the student’s name, skills, location, and other relevant details.

Fields

User

Represents a user of the platform, which could be a student or an admin. A user can have multiple interviews, skills, interests, and more.

Fields

Relationships

Community Feedback

Dora C.

Mano C.

Evan E.

An S.

Schy V.

Use Cases

Advanced Feature Ideas

About

Campus Careers is the final project for ICS 314, Spring 2025. It is developed using modern web technologies including Next.js, React, Bootstrap, and Prisma.

For more information, contact:

Name Email
Cam Moore cmoore@hawaii.edu
Chad Morita chadmmm@hawaii.edu
Dan Port dport@hawaii.edu
Brook Conner dbconner@hawaii.edu

Information and Computer Sciences
University of Hawaii

Developments

  1. Campus-Careers M1 Project Board
  2. Campus-Careers M2 Project Board
  3. Campus-Careers M3 Project Board
  4. Campus Careers Application
  5. Team Contract

Powered by the Morea Framework (Theme: spacelab)