Skip to content

Googlogogo/CSCC43-Project

Repository files navigation

CSCC43-Project

Overview

A comprehensive database-driven application for managing stock portfolios, analyzing investment performance, and collaborating with other investors. Built as part of the University of Toronto CSCC43 Database Systems final course project. Please read the C43 Report.pdf for details.

Technical Architecture

Database Design

  • Normalized Schema: All tables designed in BCNF (Boyce-Codd Normal Form)
  • Core Entities: Stock, User, StockList, Portfolio, Review, Friend, StockListHolding, PortfolioHolding, StockHistory
  • Relationships: Comprehensive foreign key constraints ensuring data integrity

Key Technologies

  • Backend: Java with JDBC for database connectivity
  • Database: PostgreSQL with advanced features (CTEs, aggregations)
  • Architecture: Multi-layered design separating data access, business logic, and presentation

Project Structure

CSCC43-Project/
├── managers/
│   ├── AccountManager.java             # Handles user account operations (registration, login, profile)
│   ├── DatabaseConnection.java         # Manages PostgreSQL database connections
│   ├── FriendManager.java              # Manages user friendships and friend requests
│   ├── PortfolioHoldingManager.java    # Handles holdings within user portfolios
│   ├── PortfolioManager.java           # Manages portfolio creation, updates, and retrieval
│   ├── ReviewManager.java              # Handles user reviews and feedback on stocks
│   ├── StatisticsManager.java          # Provides analytics and investment performance statistics
│   ├── StockListHoldingManager.java    # Manages holdings within stock lists
│   ├── StockListManager.java           # Handles creation and management of stock lists
│   ├── StockManager.java               # Manages stock information and queries
│   └── UserManger.java                 # Handles user profile and account management
├── create_database.sql/                # SQL script for database setup
├── Main.java                           # Application entry point
├── .idea                               # IDE configuration files (if using IntelliJ IDEA)
└── README.md                           # This file

Getting Started

Prerequisites

  • Java 8 or higher
  • PostgreSQL (v12 or above recommended)
  • IDE (Eclipse, IntelliJ IDEA, etc.)

Setup Instructions

  1. Clone the repository:

    git clone https://github.com/Googlogogo/CSCC43-Project.git
    cd CSCC43-Project
  2. Import the project into your preferred IDE.

  3. Install dependencies (if any external libraries are required).

Database Configuration

  1. Install PostgreSQL if not already installed.

  2. Create a new database:

    CREATE DATABASE cscc43_project;
  3. Run the database setup script create_database.sql to create the database tables and fields

  4. Configure the database connection in the application:

    • Replace the "URL", "USER", "PASSWORD" with your actual values inside managers/DatabaseConnection.java

Usage Guide

  1. Start the application by running Main.java.
  2. Login with your credentials if authentication is implemented.
  3. Perform database operations through the application interface.
  4. Execute queries and view the results.

Notice

This project was developed as part of academic coursework. While not actively maintained, the codebase serves as a reference implementation for:

  • Database design and normalization principles
  • Complex SQL query development
  • Java database application architecture
  • Financial analytics implementation

Authors

Yiran Yu

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •