{"id":30983641,"url":"https://github.com/snxethan/dbt230-library","last_synced_at":"2026-04-09T18:40:39.502Z","repository":{"id":313285431,"uuid":"822847619","full_name":"snxethan/DBT230-LIBRARY","owner":"snxethan","description":"A Java Employee Handler CLI \u0026 Database Library developed as part of the DBT230 course at Neumont College of Computer Science","archived":false,"fork":false,"pushed_at":"2025-09-05T02:00:59.000Z","size":704,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-09-05T03:30:32.277Z","etag":null,"topics":["cli","database","docker","java","library","mongodb","neo4j","neumont","redisdb"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/snxethan.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-07-02T00:33:54.000Z","updated_at":"2025-09-05T02:01:02.000Z","dependencies_parsed_at":"2025-09-05T03:30:33.606Z","dependency_job_id":"27eebec9-2481-4517-bf5f-fe3689d84e29","html_url":"https://github.com/snxethan/DBT230-LIBRARY","commit_stats":null,"previous_names":["snxethan/dbt230-library"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/snxethan/DBT230-LIBRARY","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/snxethan%2FDBT230-LIBRARY","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/snxethan%2FDBT230-LIBRARY/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/snxethan%2FDBT230-LIBRARY/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/snxethan%2FDBT230-LIBRARY/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/snxethan","download_url":"https://codeload.github.com/snxethan/DBT230-LIBRARY/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/snxethan%2FDBT230-LIBRARY/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274800755,"owners_count":25352178,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-12T02:00:09.324Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","database","docker","java","library","mongodb","neo4j","neumont","redisdb"],"created_at":"2025-09-12T11:02:22.547Z","updated_at":"2026-04-09T18:40:39.488Z","avatar_url":"https://github.com/snxethan.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SimplePersistence - Employee Management System\n\nA Java-based employee management system with GUI interface and multiple persistence options including MongoDB and local database storage.\n\n## Features\n\n- **Employee Management**: Add, view, update, and manage employee records\n- **Multiple Storage Options**: Support for both MongoDB and local database persistence\n- **GUI Interface**: User-friendly graphical interface for easy interaction\n- **Data Serialization**: JSON and GSON support for data interchange\n- **MVC Architecture**: Clean separation of Model, View, and Controller components\n\n## Requirements\n\n- Java 21 or higher\n- Maven 3.6+ for build management\n- MongoDB (optional, for MongoDB persistence)\n\n## Dependencies\n\n- **org.json** (20210307) - JSON processing\n- **gson** (2.8.8) - Google's JSON library\n- **mongodb-driver-sync** (5.1.2) - MongoDB Java driver\n- **slf4j-api** and **slf4j-simple** (2.1.0-alpha1) - Logging framework\n\n## Project Structure\n\n```\nsrc/main/java/org/example/\n├── Main.java                    # Application entry point\n├── MODEL/\n│   └── EmployeeClass.java       # Employee data model\n├── VIEW/\n│   └── GUI.java                 # Graphical user interface\n└── CONTROLLER/\n    ├── Controller.java          # Main application controller\n    ├── ConsoleTimer.java        # Console utilities\n    ├── ConsoleWrite.java        # Console output utilities\n    └── EMPLOYEE/                # Employee-specific controllers\n        ├── EmployeeDatabase.java # Database persistence\n        └── EmployeeMongo.java   # MongoDB persistence\n```\n\n## Getting Started\n\n### 1. Clone the Repository\n\n```bash\ngit clone https://github.com/snxethan/DBT230-LIBRARY.git\ncd DBT230-LIBRARY\n```\n\n### 2. Build the Project\n\n```bash\nmvn clean compile\n```\n\n### 3. Run the Application\n\n```bash\nmvn exec:java -Dexec.mainClass=\"org.example.Main\"\n```\n\nOr compile and run directly:\n\n```bash\nmvn clean package\njava -cp target/classes org.example.Main\n```\n\n## Usage\n\n1. **Start the Application**: Run the main class to launch the GUI interface\n2. **Choose Persistence Method**: Select between local database or MongoDB storage\n3. **Manage Employees**: Use the GUI to add, view, update, or delete employee records\n4. **Data Persistence**: Employee data is automatically saved using your chosen persistence method\n\n## Employee Data Fields\n\n- **ID**: Unique employee identifier (integer, cannot be negative)\n- **First Name**: Employee's first name\n- **Last Name**: Employee's last name  \n- **Hire Year**: Year the employee was hired\n\n## MongoDB Setup (Optional)\n\nIf you want to use MongoDB persistence:\n\n1. Install and start MongoDB on your system\n2. The application will connect to the default MongoDB instance (localhost:27017)\n3. Employee data will be stored in the configured MongoDB database\n\n## Development\n\nThis project follows the MVC (Model-View-Controller) pattern:\n\n- **Model**: `EmployeeClass` represents the employee data structure\n- **View**: `GUI` provides the user interface\n- **Controller**: `Controller` manages application logic and coordinates between model and view\n\n## Building for Production\n\n```bash\nmvn clean package\n```\n\nThis will create a JAR file in the `target/` directory that you can distribute and run.\n\n## License\n\nThis project is part of the DBT230 course curriculum.\n\n## Author(s)\n\n- [**Ethan Townsend (snxethan)**](https://www.ethantownsend.dev)\n- Victor Keeler\n- Jacob Brincefield\n\n---\n\n*This is a course project for database and programming fundamentals.*\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsnxethan%2Fdbt230-library","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsnxethan%2Fdbt230-library","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsnxethan%2Fdbt230-library/lists"}