{"id":27430264,"url":"https://github.com/khemssharma/chessimprover","last_synced_at":"2025-04-14T14:42:06.935Z","repository":{"id":258298281,"uuid":"872995958","full_name":"khemssharma/ChessImprover","owner":"khemssharma","description":"Learning to implement Explanation of every move in 'Play With Computer' leveraging StockFish API and  ChatGPT API","archived":false,"fork":false,"pushed_at":"2024-12-23T13:26:16.000Z","size":286,"stargazers_count":17,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-12-23T14:29:35.585Z","etag":null,"topics":["chatgpt","chess","chess-bot","chess-improvement","stockfish"],"latest_commit_sha":null,"homepage":"https://chess-improver.vercel.app","language":"TypeScript","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/khemssharma.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}},"created_at":"2024-10-15T12:35:55.000Z","updated_at":"2024-12-23T13:26:19.000Z","dependencies_parsed_at":"2024-10-18T10:48:23.095Z","dependency_job_id":"29ac4641-7b4e-4e17-adaf-515154eb9747","html_url":"https://github.com/khemssharma/ChessImprover","commit_stats":null,"previous_names":["ayushshanks/chessimprover","khemssharma/chessimprover"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/khemssharma%2FChessImprover","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/khemssharma%2FChessImprover/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/khemssharma%2FChessImprover/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/khemssharma%2FChessImprover/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/khemssharma","download_url":"https://codeload.github.com/khemssharma/ChessImprover/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248898561,"owners_count":21179793,"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","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":["chatgpt","chess","chess-bot","chess-improvement","stockfish"],"created_at":"2025-04-14T14:42:06.379Z","updated_at":"2025-04-14T14:42:06.922Z","avatar_url":"https://github.com/khemssharma.png","language":"TypeScript","readme":"# ChessImprover: Play and Learn Chess (MEAN App) [Website Link](https://chess-improver.vercel.app/)\n\n![Main Page](document-data/Screenshot1.png)\n\n## Project Description\n\nChessImprover is a fully functional chess-education platform that enables users to Play With A Coach/Friend (available feature) or Play With A Computer with real-time-every-move-AI-explanation (Intended Feature) in MEAN stack, which includes\nAngular, NodeJS, MongoDB, and ExpressJS.\nChessImprover aims to provide:\n* A platforn on which a player can play and chat with their peers and instructors across the globe.\n* A platform on which a player can learn on their own leveraging latest AI capabilities.\n\nIn the following sections, we will cover the technical details of the platform, including:\n1. System architecture: The high-level overview of the platform's components and\ndiagrams of the architecture.\n2. Front-end: The description of the front-end architecture, user interface design,\nfeatures, and functionalities of the front-end, and frameworks, libraries, and tools\nused.\n3. Back-end: The description of the back-end architecture, features and functionalities of\nthe back-end, frameworks, libraries, tools used, and data models and database schema.\n4. API Design: The description of the API design, list of API endpoints, their\nfunctionalities, and sample API requests and responses.\n\nIn summary, ChessImprover is a versatile and intuitive chess-education platform that is designed to\nprovide an immersive learning experience to students and a platform for instructors to\nshowcase their expertise. In the following sections, we will delve into the technical details\nof the platform, which will provide a comprehensive understanding of the platform's\nfeatures and functionalities.\n\n## System Architecture\n\nThe ChessImprover platform consists of three main components: the front end, the\nback end, and the database. The platform follows a client-server architecture, with the\nfront end serving as the client and the back end and database serving as the server.\n\n### Front-end \n\nThe front end of the platform is built using Angular which is a complete toolkit to create seamless\ninterfaces, which are critical for providing an engaging learning experience to the students.\nThe front end communicates with the back end using RESTful API calls\n\n### Back-end \n\nThe back end of the platform is built using NodeJS and ExpressJS,. The back end\nprovides APIs for the front end to consume, which include functionalities such as user\nauthentication, course creation, and course consumption. The back end also handles the\nlogic for processing and storing the course content and user data.\n\n\n### Database\n\nThe database for the platform is built using MongoDB, which is a NoSQL database that\nprovides a flexible and scalable data storage solution. MongoDB allows for the storage of\nunstructured and semi-structured data. The database stores the course content, user data, and other\nrelevant information related to the platform.\n\n\n### Architecture Diagram\n\nHere is a high-level diagram that illustrates the architecture of the ChessImprover ed-tech\nplatform:\n\n![Architecture](document-data/architecture.png)\n\n## Front End\n\nThe front end of ChessImprover has the following pages:\n\n* Homepage: This page asks whether player wants to play with a Friend or a Computer.\n* Game Screen: This page contains the chess board (and the intended chat-bot)\n\n## Back End\n\nDescription of the Back-end Architecture: \nChessImprover uses a monolithic architecture, with the backend built using Node.js and\nExpress.js, and MongoDB as the primary database. \n\nFeatures and Functionalities of the Back-end: \nThe back end of ChessImprover provides a range of features and functionalities, including:\n1. AIExplanation: ChatGPT response are generated here.\n2. Authentication: If player wants to chat with a friend they will first have to log in.\n3. Chat: WebSocket and chat functionality is defined here.\n\nFrameworks, Libraries, and Tools used: \nThe back end of ChessImprover uses a range of frameworks, libraries, and tools to ensure its\nfunctionality and performance, including:\n1. Node.js: Node.js is used as the primary framework for the back end.\n2. MongoDB: MongoDB is used as the primary database, providing a flexible and scalable\ndata storage solution.\n3. Express.js: Express.js is used as a web application framework, providing a range of\nfeatures and tools for building web applications.\n4. JWT: JWT (JSON Web Tokens) are used for authentication and authorization,\nproviding a secure and reliable way to manage user credentials.\n5. Bcrypt: Bcrypt is used for password hashing, adding an extra layer of security to user\ndata.\n6. Mongoose: Mongoose is used as an Object Data Modeling (ODM) library, providing a\nway to interact with MongoDB using JavaScript\n\n### Data Models and Database Schema: \nThe back end of ChessImprover uses a range of data models and database schemas to\nmanage data, including:\n1. User: Includes fields such as name, email, password, and course details\nfor each player.\n2. Games: Media-Server Links to the PGN of games played by the user. \n\nOverall, the back-end of ChessImprover is designed to provide a robust and scalable solution\nfor an education platform, with a focus on security, reliability, and ease of use. By using the\nright frameworks, libraries, and tools, we can ensure that the platform functions smoothly\nand provides an optimal user experience for all its users.\n\n## API Design\n\nThe ChessImprover platform's API is designed following the REST architectural style. The\nAPI is implemented using Node.js and Express.js. It uses JSON for data exchange and\nfollows standard HTTP request methods such as GET, POST, PUT, and DELETE.\nSample list of API endpoints and their functionalities: \n1. /api/auth/signup (POST) - Create a new user (student or instructor) account.\n2. /api/auth/login (POST) – Log in using existing credentials and generate a JWT\ntoken.\n3. /api/auth/verify-otp (POST) - Verify the OTP sent to the user's registered email.\n4. /api/auth/forgot-password (POST) - Send an email with a password reset link to\nthe registered email.\n5. /api/games (GET) - Get a list of all the games played by the user.\n\nIn conclusion, the REST API design for the ChessImprover platform is a crucial part\nof the project. The API endpoints and their functionalities are designed to ensure seamless\ncommunication between the front-end and back-end of the application. By following\nRESTful principles, the API will be scalable, maintainable, and reliable. The sample API\nrequests and responses provided above illustrate how each endpoint will function and\nwhat kind of data it will accept or return. With this API design, ChessImprover will be able to\nprovide a smooth user experience while ensuring security and stability.","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkhemssharma%2Fchessimprover","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkhemssharma%2Fchessimprover","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkhemssharma%2Fchessimprover/lists"}