{"id":49799708,"url":"https://github.com/toxicbishop/software-dev-internship","last_synced_at":"2026-05-12T13:05:02.415Z","repository":{"id":352992387,"uuid":"1217524242","full_name":"toxicbishop/Software-Dev-Internship","owner":"toxicbishop","description":"Six multi-language programming tasks (Java, C++, C#) completed during a Software Development Internship — covering CLI games, pattern generators, CRUD managers, and web scraping.","archived":false,"fork":false,"pushed_at":"2026-04-22T01:57:54.000Z","size":2942,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-22T03:26:22.511Z","etag":null,"topics":["cli","cpp","crud","csharp","dotnet","gradle","java","maven","web-scraping"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/toxicbishop.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2026-04-22T01:13:44.000Z","updated_at":"2026-04-22T02:00:49.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/toxicbishop/Software-Dev-Internship","commit_stats":null,"previous_names":["toxicbishop/software-dev-internship"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/toxicbishop/Software-Dev-Internship","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/toxicbishop%2FSoftware-Dev-Internship","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/toxicbishop%2FSoftware-Dev-Internship/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/toxicbishop%2FSoftware-Dev-Internship/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/toxicbishop%2FSoftware-Dev-Internship/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/toxicbishop","download_url":"https://codeload.github.com/toxicbishop/Software-Dev-Internship/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/toxicbishop%2FSoftware-Dev-Internship/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32940124,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-12T09:19:52.626Z","status":"ssl_error","status_checked_at":"2026-05-12T09:17:33.438Z","response_time":102,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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","cpp","crud","csharp","dotnet","gradle","java","maven","web-scraping"],"created_at":"2026-05-12T13:04:58.583Z","updated_at":"2026-05-12T13:05:02.408Z","avatar_url":"https://github.com/toxicbishop.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Internship-Software%20Development-blue?style=for-the-badge\" alt=\"Internship Badge\"/\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Tasks-6%20Completed-success?style=for-the-badge\" alt=\"Tasks Badge\"/\u003e\n  \u003cimg src=\"https://img.shields.io/github/license/toxicbishop/Software-Dev-Internship?style=for-the-badge\" alt=\"License Badge\"/\u003e\n\u003c/p\u003e\n\n# Software Development Internship\n\nA collection of **six self-contained programming tasks** completed as part of a software development internship. Each task is implemented in a different language/framework to demonstrate versatility across the development stack.\n\n---\n\n## Repository Structure\n\n```\nSoftware-Dev-Internship/\n├── Task 1/   ─  Number Guessing Game          (Java · Maven)\n├── Task 2/   ─  Number Pattern Generator      (Java · Maven)\n├── Task 3/   ─  Task Manager (CRUD)           (C++ · Gradle)\n├── Task 4/   ─  Temperature Converter          (C++ · Gradle)\n├── Task 5/   ─  Persistent Task Manager       (C# · .NET 8)\n├── Task 6/   ─  Interactive Web Scraper       (C# · .NET 8)\n├── SOFTWARE DEVELOPMENT.pdf\n├── LICENSE\n└── README.md\n```\n\n---\n\n## Task Overview\n\n### Task 1 — Number Guessing Game\n\n|              |                                                                   |\n| ------------ | ----------------------------------------------------------------- |\n| **Language** | Java 17                                                           |\n| **Build**    | Maven                                                             |\n| **Source**   | [`Task1_GuessingGame.java`](Task%201/src/Task1_GuessingGame.java) |\n\nA CLI game where the computer picks a random number and the player tries to guess it. Features three difficulty levels (Easy / Medium / Hard), input validation, hint system (\"Too high\" / \"Too low\"), and a persistent win/loss scoreboard across rounds.\n\n```bash\ncd \"Task 1\"\nmvn compile exec:java\n```\n\n---\n\n### Task 2 — Number Pattern Generator\n\n|              |                                                                       |\n| ------------ | --------------------------------------------------------------------- |\n| **Language** | Java 17                                                               |\n| **Build**    | Maven                                                                 |\n| **Source**   | [`Task2_NumberPatterns.java`](Task%202/src/Task2_NumberPatterns.java) |\n\nGenerates four classic number patterns with user-configurable row counts (1–20):\n\n- **Right Triangle** — ascending rows\n- **Inverted Right Triangle** — descending rows\n- **Pyramid** — centered, mirrored pattern\n- **Floyd's Triangle** — consecutive numbering\n\n```bash\ncd \"Task 2\"\nmvn compile exec:java\n```\n\n---\n\n### Task 3 — Task Manager (CRUD)\n\n|              |                                                                        |\n| ------------ | ---------------------------------------------------------------------- |\n| **Language** | C++17                                                                  |\n| **Build**    | Gradle (cpp-application plugin)                                        |\n| **Source**   | [`Task3_TaskManager.cpp`](Task%203/src/main/cpp/Task3_TaskManager.cpp) |\n\nAn in-memory task manager with full **Create, Read, Update, Delete** operations. Each task has an auto-incrementing ID, title, optional description, and done/pending status. The interactive menu-driven interface includes robust input validation.\n\n```bash\ncd \"Task 3\"\ngradle build\n./build/exe/main/task3-task-manager      # Linux\n.\\build\\exe\\main\\task3-task-manager.exe  # Windows\n```\n\n---\n\n### Task 4 — Temperature Converter\n\n|              |                                                                                          |\n| ------------ | ---------------------------------------------------------------------------------------- |\n| **Language** | C++17                                                                                    |\n| **Build**    | Gradle (cpp-application plugin)                                                          |\n| **Source**   | [`Task4_TemperatureConverter.cpp`](Task%204/src/main/cpp/Task4_TemperatureConverter.cpp) |\n\nA bidirectional temperature converter supporting **Fahrenheit ↔ Celsius** conversions. Results are formatted to two decimal places. Includes a looping menu for repeated conversions and full input validation.\n\n```bash\ncd \"Task 4\"\ngradle build\n./build/exe/main/task4-temperature-converter      # Linux\n.\\build\\exe\\main\\task4-temperature-converter.exe  # Windows\n```\n\n---\n\n### Task 5 — Persistent Task Manager\n\n|              |                                                                                                                           |\n| ------------ | ------------------------------------------------------------------------------------------------------------------------- |\n| **Language** | C# (.NET 8)                                                                                                               |\n| **Build**    | `dotnet` CLI                                                                                                              |\n| **Source**   | [`Program.cs`](Task%205/Program.cs) · [`TaskItem.cs`](Task%205/TaskItem.cs) · [`TaskManager.cs`](Task%205/TaskManager.cs) |\n\nAn enhanced task manager that extends Task 3's CRUD functionality with **file-based persistence**. Tasks are automatically saved to and loaded from `tasks.txt` using a custom line-delimited format. Data survives application restarts. Features structured OOP architecture with separate model and manager classes.\n\n```bash\ncd \"Task 5\"\ndotnet run\n```\n\n---\n\n### Task 6 — Interactive Web Scraper\n\n|                |                                                                                                                     |\n| -------------- | ------------------------------------------------------------------------------------------------------------------- |\n| **Language**   | C# (.NET 8)                                                                                                         |\n| **Build**      | `dotnet` CLI                                                                                                        |\n| **Dependency** | [HtmlAgilityPack](https://html-agility-pack.net/) v1.11.71                                                          |\n| **Source**     | [`Program.cs`](Task%206/Program.cs) · [`Scraper.cs`](Task%206/Scraper.cs) · [`Presenter.cs`](Task%206/Presenter.cs) |\n\nA fully interactive web scraper with four extraction modes:\n\n1. **Title \u0026 Headings** — extracts the page title and all `\u003ch1\u003e`, `\u003ch2\u003e`, `\u003ch3\u003e` elements\n2. **All Links** — enumerates anchor tags with resolved absolute URLs (capped at 50)\n3. **Meta Info** — pulls title, description, keywords, and Open Graph metadata\n4. **Custom XPath** — run arbitrary XPath queries against any web page\n\nIncludes proper HTTP headers, 15-second timeout, and graceful error handling.\n\n```bash\ncd \"Task 6\"\ndotnet restore\ndotnet run\n```\n\n---\n\n## Tech Stack\n\n| Language | Version | Build Tool | Tasks |\n| :------: | :-----: | :--------: | :---: |\n|   Java   |   17    |   Maven    | 1, 2  |\n|   C++    |   17    |   Gradle   | 3, 4  |\n|    C#    | .NET 8  | dotnet CLI | 5, 6  |\n\n---\n\n## Prerequisites\n\n| Tool           | Required For | Install                                               |\n| -------------- | ------------ | ----------------------------------------------------- |\n| **JDK 17+**    | Tasks 1 \u0026 2  | [adoptium.net](https://adoptium.net/)                 |\n| **Maven 3.8+** | Tasks 1 \u0026 2  | [maven.apache.org](https://maven.apache.org/)         |\n| **g++ / MSVC** | Tasks 3 \u0026 4  | System C++ compiler                                   |\n| **Gradle 7+**  | Tasks 3 \u0026 4  | [gradle.org](https://gradle.org/)                     |\n| **.NET 8 SDK** | Tasks 5 \u0026 6  | [dotnet.microsoft.com](https://dotnet.microsoft.com/) |\n\n---\n\n## License\n\nThis project is licensed under the **MIT License** — see the [`LICENSE`](LICENSE) file for details.\n\n---\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftoxicbishop%2Fsoftware-dev-internship","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftoxicbishop%2Fsoftware-dev-internship","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftoxicbishop%2Fsoftware-dev-internship/lists"}