{"id":32557994,"url":"https://github.com/hashedalgorithm/boggle","last_synced_at":"2025-10-28T23:52:59.442Z","repository":{"id":320765263,"uuid":"1081441639","full_name":"hashedalgorithm/boggle","owner":"hashedalgorithm","description":null,"archived":false,"fork":false,"pushed_at":"2025-10-25T18:09:45.000Z","size":2260,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-10-25T19:27:48.690Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/hashedalgorithm.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":"2025-10-22T19:38:44.000Z","updated_at":"2025-10-25T18:09:48.000Z","dependencies_parsed_at":null,"dependency_job_id":"6bff7a15-0193-4638-a427-3e89f2c6d2f5","html_url":"https://github.com/hashedalgorithm/boggle","commit_stats":null,"previous_names":["hashedalgorithm/boggle"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/hashedalgorithm/boggle","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hashedalgorithm%2Fboggle","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hashedalgorithm%2Fboggle/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hashedalgorithm%2Fboggle/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hashedalgorithm%2Fboggle/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hashedalgorithm","download_url":"https://codeload.github.com/hashedalgorithm/boggle/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hashedalgorithm%2Fboggle/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":281533465,"owners_count":26517827,"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-10-28T02:00:06.022Z","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":[],"created_at":"2025-10-28T23:52:21.782Z","updated_at":"2025-10-28T23:52:59.432Z","avatar_url":"https://github.com/hashedalgorithm.png","language":"TypeScript","readme":"# Boggle Game - Developer Documentation\n\n## Introduction\n\nThis is a Boggle game implemented using Next.js, allowing players to form words from adjacent letters on a grid in a timed setting. The game offers multi-language support and dynamic configuration options such as grid size and play time.\n\n## Getting Started\n\n### Installation\n\nTo install the necessary dependencies, run the following command:\n\n```bash\nnpm install\n```\n\n### Running the Development Server\n\nTo start the development server, use:\n\n```bash\nnpm run dev\n```\n\nOpen [http://localhost:3000](http://localhost:3000) to see your app in the browser.\n\n### Building for Production\n\nTo create a production build, run:\n\n```bash\nnpm run build\n```\n\n### Starting the Dev Server\n\nTo start dev server, use:\n\n```bash\nnpm run dev\n```\n\n## Directory Structure\n\nThe project is structured as follows:\n\n```\nboggle-main\n├── src\n│   ├── app\n│   ├── components\n│   ├── containers\n│   ├── contexts\n│   ├── layouts\n│   ├── lib\n│   ├── screens\n│   ├── server\n│   ├── types\n│   └── utils\n├── public\n├── components.json\n├── next.config.ts\n├── package.json\n├── README.md\n└── tsconfig.json\n```\n\n### Key Files and Directories\n\n- **src/app**: Contains main application routes and pages.\n- **src/components**: UI components used throughout the app.\n- **src/containers**: Container components handling complex logic and state management.\n- **src/contexts**: React context implementations for global state management.\n  - `game-controller-context.tsx`: Manages game configurations and player states.\n  - `boogle-grid-context.tsx`: Handles the logic for the Boggle grid.\n- **src/layouts**: Defines page layouts.\n- **src/lib**: Contains utility functions.\n- **src/server**: Server-side logic for word validation.\n- **src/types**: TypeScript type definitions.\n- **src/utils**: Utility data or constants.\n- **public**: Static assets.\n\n## Application Flow\n\n1. **Configuration Screen (RootScreen)**\n\n   - Users choose game configurations: number of players, language, time per round, and grid size.\n   - Configurations are managed by the `GameConfiguration` component.\n   - Players can add or remove participants and adjust the timer and grid settings.\n\n   \u003cimg width=\"1706\" height=\"942\" alt=\"Screenshot 2025-10-24 at 07 50 49\" src=\"https://github.com/user-attachments/assets/16403961-8bf5-48a8-b528-2eec27ae94bc\" /\u003e\n\n2. **Play Screen (PlayScreen)**\n\n   - Displays the Boggle grid and a timer.\n   - Players trace letters to form words.\n   - Uses `BoogleGrid` and `Timer` components for gameplay mechanics.\n\n    \u003cimg width=\"1710\" height=\"1026\" alt=\"Screenshot 2025-10-24 at 07 51 00\" src=\"https://github.com/user-attachments/assets/93f93fbd-6253-4704-b854-a6d1c0a4604c\" /\u003e\n\n3. **Results Screen (ResultsScreen)**\n\n   - Summarizes players' scores and words formed.\n   - Players can restart the game using the \"Play Again\" button.\n\n    \u003cimg width=\"1709\" height=\"1025\" alt=\"Screenshot 2025-10-24 at 07 51 10\" src=\"https://github.com/user-attachments/assets/da44869f-dbf1-4c25-a1ff-abbb02dd796a\" /\u003e\n\n## Contexts and State Management\n\n- **GameControllerContext**:\n\n  - Handles player management, game state, and configurations.\n  - Actions include adding/removing players, starting/ending games, and handling grid and time settings.\n\n- **BoogleGridContext**:\n  - Manages the Boggle grid, capturing user interactions, and tracing word paths.\n\n## Word Validation\n\n- The `word-api.ts` file contains logic to validate words against a predefined list.\n\n## Theme and Styling\n\n- The app uses Tailwind CSS for styling.\n- The `globals.css` file contains global styles and theme configurations.\n- The `ThemeProvider` provides dark/light theme toggling capability.\n\n## Conclusion\n\nThis documentation provides an overview of the Boggle game app. For further details, refer to the code within each module and directory, and explore modifying or extending the functionality as needed.\n\n## References\n\n1. Boggle - https://en.wikipedia.org/wiki/Boggle#Rules\n2. Mouse Events - https://www.w3schools.com/jsref/obj_mouseevent.asp\n3. Design System - https://ui.shadcn.com/\n4. Lucide Icons - https://lucide.dev/icons/\n5. ChatGPT - Contents of this Readme are written using AI.\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhashedalgorithm%2Fboggle","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhashedalgorithm%2Fboggle","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhashedalgorithm%2Fboggle/lists"}