{"id":30663298,"url":"https://github.com/yosibs/connectfour-dotnet-courseproject","last_synced_at":"2026-05-01T18:32:38.909Z","repository":{"id":312089692,"uuid":"1046255036","full_name":"YosiBs/ConnectFour-DotNet-CourseProject","owner":"YosiBs","description":"This repository contains both the Client (WinForms application) and the Server (ASP.NET Core with Razor Pages \u0026 Web API) for a Connect Four game project.  This project was developed as part of a Software Engineering C# course project and demonstrates full-stack development in .NET, combining desktop, web, and database technologies.","archived":false,"fork":false,"pushed_at":"2025-08-28T14:26:27.000Z","size":14657,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-08-28T20:06:30.305Z","etag":null,"topics":["ado-net","aspnet-core","connect-four","csharp","dotnet","entity-framework","fullstack","game-development","razor-pages","sql-server","webapi","winforms"],"latest_commit_sha":null,"homepage":"","language":"C#","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/YosiBs.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}},"created_at":"2025-08-28T12:20:01.000Z","updated_at":"2025-08-28T14:26:31.000Z","dependencies_parsed_at":"2025-08-28T20:19:50.264Z","dependency_job_id":null,"html_url":"https://github.com/YosiBs/ConnectFour-DotNet-CourseProject","commit_stats":null,"previous_names":["yosibs/connectfour-dotnet-courseproject"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/YosiBs/ConnectFour-DotNet-CourseProject","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YosiBs%2FConnectFour-DotNet-CourseProject","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YosiBs%2FConnectFour-DotNet-CourseProject/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YosiBs%2FConnectFour-DotNet-CourseProject/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YosiBs%2FConnectFour-DotNet-CourseProject/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/YosiBs","download_url":"https://codeload.github.com/YosiBs/ConnectFour-DotNet-CourseProject/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YosiBs%2FConnectFour-DotNet-CourseProject/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273010994,"owners_count":25030369,"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-08-31T02:00:09.071Z","response_time":79,"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":["ado-net","aspnet-core","connect-four","csharp","dotnet","entity-framework","fullstack","game-development","razor-pages","sql-server","webapi","winforms"],"created_at":"2025-08-31T17:04:48.316Z","updated_at":"2026-05-01T18:32:38.781Z","avatar_url":"https://github.com/YosiBs.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ca id=\"readme-top\"\u003e \u003c/a\u003e\n\n# 🎮 Connect Four – Client \u0026 Server Project\n\u003cp align= \"center\"\u003e\u003cimg width=\"300\" alt=\"ConnectFourIcon\" src=\"https://github.com/user-attachments/assets/0a726520-715e-4b81-9ff7-d85ccf635b56\" /\u003e\u003c/p\u003e\n\n\n\n\n---\n\n\u003ch2\u003e\u003cimg src=\"https://github.com/YosiBs/Gotcha-App/assets/105666011/558f0957-6604-47a4-a202-66a02a2835e7\" alt=pic5 width=\"40\" height=\"40\"\u003e Overview\u003c/h2\u003e\nThis project is an academic implementation of the classic **Connect Four** game with a **Client–Server architecture**.  \n\n- **Client (WinForms)**: Provides a modern UI for playing Connect Four against the computer (server). Includes animations, replay functionality, and a Discord-inspired design theme.  \n- **Server (ASP.NET Core)**: Manages the game logic, player registration, database, and queries. Supports multiple clients playing independently in parallel.  \n\nThe project demonstrates **full-stack development** in C#, combining a desktop application, ASP.NET Core Web App (Razor Pages), and ASP.NET Core Web API, along with SQL Server for persistent data storage.\n\n---\n\n\n\n## 📸 Screenshots\n\n- Login Screen (Client)\n\u003cimg width=\"300\" height=\"632\" alt=\"LoginForm\" src=\"https://github.com/user-attachments/assets/da147442-1dd6-43df-baae-fdd86a394e42\" /\u003e\n\n- Game Board (Client)\n\u003cimg width=\"350\" alt=\"Game\" src=\"https://github.com/user-attachments/assets/00ef2238-177b-411b-9755-d2df3087a0b7\" /\u003e\n\n- Replay List (Client)\n\u003cimg width=\"300\" alt=\"ReplayForm\" src=\"https://github.com/user-attachments/assets/6d21adc4-aa8d-4abe-848e-9d43d1f8c44a\" /\u003e\n\n- Replay Display (Client)\n\u003cimg width=\"300\" alt=\"ReplayDisplay\" src=\"https://github.com/user-attachments/assets/e7c0215e-e428-4cbe-af75-ebec1a75c938\" /\u003e\n\n- Razor Pages - Home Screen (Server Dashboard)\n\u003cimg width=\"650\"  alt=\"HomeScreen\" src=\"https://github.com/user-attachments/assets/39a8470b-438b-4039-9afc-43e5f71cb548\" /\u003e\n\n- Razor Pages - ScoreBoard (Server Dashboard)\n\u003cimg width=\"650\" alt=\"PlayersData\" src=\"https://github.com/user-attachments/assets/32cdaeba-94bd-4215-b13d-abc6ed649d63\" /\u003e\n\n---\n\n\u003ch2\u003e\u003cimg src=\"https://github.com/YosiBs/Pokemon-Escape-Mobile-Game/assets/105666011/008a508e-5484-46ba-be36-ac359d603f01\" alt=pic5 width=\"40\" height=\"40\"\u003e Features\u003c/h2\u003e\n\n\n- 🔹 Play **Connect Four** against the server.  \n- 🔹 Player registration with validation (name, ID, phone, country).  \n- 🔹 **Stylish WinForms Client** with Discord theme and animations.  \n- 🔹 **Replay functionality** for past games saved locally.  \n- 🔹 **Server Web Interface** (Razor Pages) for:\n  - Registering players\n  - Running queries\n  - Viewing statistics \u0026 player information\n  - Managing updates and deletions  \n- 🔹 **REST API** (ASP.NET Core Web API) for client–server communication.  \n- 🔹 **SQL Server Database**:\n  - Stores players, games, and moves\n  - Supports queries like:\n    - All players (ordered case-sensitive)\n    - All games with details\n    - Distinct games without duplicates\n    - Player statistics per country\n    - Player participation counts  \n\n---\n\n\u003ch2\u003e\u003cimg src=\"https://github.com/YosiBs/Gotcha-App/assets/105666011/f09bd9dd-b5e2-4076-a617-fd71fe7deceb\" alt=pic5 width=\"40\" height=\"40\"\u003e Technologies Used\u003c/h2\u003e\n\n- **C# .NET**  \n- **WinForms** (Client UI)  \n- **ASP.NET Core Razor Pages** (Server web app)  \n- **ASP.NET Core Web API** (Server API)  \n- **SQL Server LocalDB** (ADO.NET / Entity Framework)  \n- **LINQ** for queries  \n- **Bootstrap** (styling Razor pages)\n\n---\n\n## 🏗 Architecture\n\n```mermaid\nflowchart LR\n    subgraph Client[🎮 Client - WinForms App]\n        UI[UI - Game Board \u0026 Controls]\n        Replay[Replay Saved Games]\n    end\n\n    subgraph Server[🖥 Server - ASP.NET Core]\n        Razor[Razor Pages - Web UI]\n        API[Web API - REST Endpoints]\n    end\n\n    subgraph Database[🗄 SQL Server LocalDB]\n        Players[(Players Table)]\n        Games[(Games Table)]\n        Moves[(Moves Table)]\n    end\n\n    UI --\u003e|HTTP Requests| API\n    Replay --\u003e|Local Saved Games| UI\n    Razor --\u003e Database\n    API --\u003e Database\n```\n\n\u003ch2\u003e\u003cimg src=\"https://github.com/YosiBs/Gotcha-App/assets/105666011/9f5d6637-b1e1-4037-8f60-64388e5ab109\" alt=pic5 width=\"40\" height=\"40\"\u003e Authors\u003c/h2\u003e\n\n\u003cul\u003e\n    \u003cli\u003e\u003ca href=\"https://github.com/YosiBs\"\u003eYosi Ben Shushan\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"https://github.com/Noam0\"\u003eNoam Ben Benjamin\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\n---\n\n\u003ch2\u003e\u003cimg src=\"https://github.com/YosiBs/Gotcha-App/assets/105666011/65ede3d1-631b-4d43-801a-3c17777938fb\" alt=pic5 width=\"40\" height=\"40\"\u003e References\u003c/h2\u003e\n\n- [Connect Four inspiration game](https://www.cbc.ca/kids/games/all/connect-4)  \n- [ASP.NET Core Razor Pages Documentation](https://learn.microsoft.com/en-us/aspnet/core/tutorials/razor-pages/page)  \n- [ASP.NET Core Web API Documentation](https://learn.microsoft.com/en-us/aspnet/web-api/overview/advanced/calling-a-web-api-from-a-net-client)  \n- [Bootstrap Grid System](https://getbootstrap.com/docs/5.0/layout/grid/)  \n\n---\n\n\n\n\u003cp align=\"right\"\u003e\u003ca href=\"#readme-top\"\u003e\u003cimg src=\"https://github.com/user-attachments/assets/5390781c-77bb-4f30-8403-1f46f14f9058\" alt=pic5 width=\"40\" height=\"40\"\u003e\u003c/a\u003e\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyosibs%2Fconnectfour-dotnet-courseproject","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyosibs%2Fconnectfour-dotnet-courseproject","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyosibs%2Fconnectfour-dotnet-courseproject/lists"}