Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

20 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Internship Application Tracker — MongoDB Database Project

This project designs and implements a database for an Internship Application Tracker. Originally built as a normalized relational database in PostgreSQL (Project 1), the system has been adapted to a document-based MongoDB database (Project 2). The platform models core entities such as users, job applications, companies, job postings, interviews, offers, contacts, and tags.

For the MongoDB adaptation, the 12 normalized relational tables were restructured into 2 root collections — users and applications — using embedded documents and denormalization following MongoDB best practices. Company details, job postings, status history, interviews, offers, contacts, and tags are all embedded within application documents. The project includes a conceptual UML model, a hierarchical ERD, example JSON collection definitions, mock data with import instructions, and five MongoDB queries covering the aggregation framework, complex search criteria with logical connectors, document counting, and update operations.

ai-usage: AI tools (Claude) were used to assist with generating mock data, structuring JSON collection examples, and drafting MongoDB queries.

uml diagram: See uml_conceptual_model.pdf

erd: See ERD.pdf

video link: https://drive.google.com/file/d/1kd0l6zKO0ql9kmw8Gtn2wXIBPdJjz8_B/view?usp=sharing


Collections

  • users — one document per student (name, email, university, major, graduation year)
  • applications — one document per job application, with company, job posting, status history, interviews, offer, contacts, and tags all embedded inside

How to Initialize the Database

mongorestore --db internship_tracker ./data/dump/internship_tracker

Or import manually:

mongoimport --db internship_tracker --collection users --file data/users.json --jsonArray
mongoimport --db internship_tracker --collection applications --file data/applications_reshaped.json --jsonArray

Note: applications_reshaped.json was generated by running node data/reshape.js, which converts the flat Mockaroo export into nested MongoDB documents.


Running the App

cd internship-app
npm install
node app.js

Then open http://localhost:3000 in your browser.


Queries

mongosh
use internship_tracker

Then paste any query from queries/queries.js.

# Description Requirement
Q1 Applications grouped by industry Aggregation
Q2 Active co-op/internship apps paying $30+/hr $and + $or
Q3 Count applications for user_id 1 Count
Q4 Flip is_active to false for user_id 1 Update
Q5 All offers sorted by most recent General query

Video Demo

https://drive.google.com/file/d/1kd0l6zKO0ql9kmw8Gtn2wXIBPdJjz8_B/view?usp=sharing

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages