Skip to content

Localized multi-class SSO system that has account editing capabilities

Notifications You must be signed in to change notification settings

davchez/SystemHandler

Repository files navigation

SystemHandler

Author: David Sanchez   •   Development: Aug 2023 — Sep 2023   •   Java OOP Architecture Demo

 

Overview

A command-line SSO (Single Sign-On) system demonstrating object-oriented design patterns and secure user authentication in Java. Built as a sophomore-year project to explore advanced Java concepts including lambda expressions, design patterns, and modular architecture.

 

Key Technical Features

Advanced Architecture

  • Command Processor Pattern: Custom processor using lambda expressions and HashMaps to execute Runnable objects dynamically
  • Separation of Concerns: Modular design across User, UserList, InformationHandler, and SystemTime classes
  • Security-First Design: Account security through challenge questions with validation system

Engineering Practices

  • Complete Javadoc documentation for all methods
  • Encapsulation through private helper methods
  • Bug tracking documented in class headers
  • Real-time session tracking with millisecond precision

 

Features

User Management

  • Account creation with username/password validation
  • Secure login with fallback security question challenges
  • Session time tracking

Security System

  • Multi-question security challenge system
  • Password protection (with noted security considerations for future improvement)
  • Account-specific security question storage

 

Technical Implementation

Core Technologies

  • Java (OOP, Lambda Expressions, Functional Interfaces)
  • HashMap data structures for user storage and command routing
  • Runnable objects for dynamic method execution

Design Patterns

  • Command Pattern (via lambda-based processor)
  • Observer Pattern (via security question challenges)
  • Factory Pattern (user object creation)

 

Architecture Highlights

The Processor subclass demonstrates functional programming concepts in Java:

private final Runnable ADD_SECURITY_QUESTIONS = () -> { addSecurityQuestions(); };
// Mapped to HashMap for dynamic command execution

About

Localized multi-class SSO system that has account editing capabilities

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages