{"id":15131572,"url":"https://github.com/sebastianfoder/booken","last_synced_at":"2026-01-29T09:37:06.875Z","repository":{"id":256359640,"uuid":"855040009","full_name":"SebastianFoder/booken","owner":"SebastianFoder","description":"Booken: A Neurodivergent Dictionary for Knowledge Discovery","archived":false,"fork":false,"pushed_at":"2024-09-19T09:16:05.000Z","size":2781,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-05T21:13:37.501Z","etag":null,"topics":["dictionary","mongodb","mongodb-atlas","mongodb-database","nextjs","nextjs14","react","react-router","reactjs"],"latest_commit_sha":null,"homepage":"https://booken-henna.vercel.app","language":"TypeScript","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/SebastianFoder.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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-09-10T07:44:55.000Z","updated_at":"2024-09-19T09:16:09.000Z","dependencies_parsed_at":"2024-10-31T12:37:49.160Z","dependency_job_id":null,"html_url":"https://github.com/SebastianFoder/booken","commit_stats":null,"previous_names":["sebastianfoder/booken"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SebastianFoder%2Fbooken","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SebastianFoder%2Fbooken/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SebastianFoder%2Fbooken/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SebastianFoder%2Fbooken/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SebastianFoder","download_url":"https://codeload.github.com/SebastianFoder/booken/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247399886,"owners_count":20932880,"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":["dictionary","mongodb","mongodb-atlas","mongodb-database","nextjs","nextjs14","react","react-router","reactjs"],"created_at":"2024-09-26T04:00:27.883Z","updated_at":"2026-01-29T09:37:06.789Z","avatar_url":"https://github.com/SebastianFoder.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# **Booken: A Neurodivergent Dictionary for Knowledge Discovery**\n\nWelcome to **Booken**, a web application designed for individuals who want to explore, organize, and expand their knowledge with a focus on neurodivergent communities. This project enables users to manage and search through an extensive dictionary of words (Ords) with definitions, tagged and organized with color-coded categories for better accessibility.\n\n## **Features**\n\n- **Search and Filter Ords:** Easily search Ords by keywords, tags, and phrases. Apply filters dynamically with `Enter` and clear them when necessary.\n- **Tags System:** Words (Ords) are categorized with tags that help users explore related content. Tags are color-coded for better organization and visual appeal.\n- **Tag Management:** Add, edit, and delete tags easily. When a tag is deleted, all references to it in the Ords are cleaned up automatically to maintain database integrity.\n- **Responsive Text-to-Speech (TTS) Feature:** Click to have the app read out the definition of any Ord. The TTS system includes controls for starting, pausing, resuming, and stopping the narration.\n- **Rich Text Editing:** Ords' definitions support rich text content, and the display is sanitized to ensure security and proper formatting.\n\n## **Tech Stack**\n\n- **Frontend:**\n  - React + TypeScript\n  - CSS Modules for styling\n  - Chroma.js for color manipulation\n  - Speech Synthesis API for TTS\n  - DOMPurify for HTML sanitization\n\n- **Backend:**\n  - Node.js + Next.js (Server-Side Rendering \u0026 API routes)\n  - MongoDB for database management\n  - Axios for HTTP requests\n\n## **Getting Started**\n\n### **Prerequisites**\n\nEnsure you have the following installed:\n\n- **Node.js** (\u003e= 14.x)\n- **MongoDB** instance running locally or remotely\n- **npm** or **yarn** (your choice)\n\n### **Installation**\n\n1. Clone the repository:\n\n```bash\ngit clone https://github.com/SebastianFoder/booken.git\ncd booken\n```\n\n2. Install dependencies:\n\n```bash\nnpm install\n```\n\n3. Set up your environment:\n\nCreate a `.env` file in the root directory and add the following:\n\n```bash\nDB_END_POINT=your-mongodb-api-endppoint\nDB_API_KEY=your-mongodb-api-key\nDB_NAME=your-mongodb-database-name\nDB_SOURCE=your-mongodb-datasource\nNEXT_PUBLIC_URL=your-url(normaly http://localhost:3000)\nAUTH_SECRET=your-own-generated-secret-key\n```\n\n4. Run the development server:\n\n```bash\nnpm run dev\n```\n\n5. Open [http://localhost:3000](http://localhost:3000) to view it in the browser.\n\n## **Usage**\n\n### **Tagging System**\n\nTags are applied to Ords to categorize them. You can filter Ords by selecting relevant tags from the interface. The tags system uses **color coding** for easier navigation and quick recognition. You can also click on a tag to filter Ords that share the same tag.\n\n### **Dynamic Search with Filters**\n\nUse the search bar to find Ords. When you press `Enter`, the search is immediately applied. The system filters both Ords and tags to match your search query, making it quick to find relevant information.\n\n### **Text-to-Speech (TTS)**\n\nFor better accessibility, users can click the \"Read Definition\" button to have the app read out the definition aloud. The TTS feature comes with controls to:\n\n- **Start**: Begin reading the Ord's definition.\n- **Pause**: Pause the reading at any time.\n- **Resume**: Continue the reading from where it was paused.\n- **Stop**: Stop the reading altogether.\n\n### **Tag Management**\n\n- **Create/Update Tags**: Add new tags with primary and secondary color options.\n- **Delete Tags**: Safely delete tags. The system ensures that all references to deleted tags are removed from the associated Ords.\n\n## **API Endpoints**\n\n- **GET /api/ord/[id]**: Fetches the specific Ord by its unique ID.\n- **DELETE /api/tags/[id]**: Deletes a tag by ID and removes all references to it from the Ords.\n- **POST /api/tags**: Creates a new tag.\n\n## **Future Plans**\n\n- **Improved TTS**: Support for voice selection and speed adjustment.\n- **Tag Suggestions**: Autocomplete and suggest related tags when tagging Ords.\n\n## **License**\n\nThis project is licensed under the MIT License. See the `LICENSE` file for more details.\n\n---\n\nEnjoy exploring and expanding your knowledge with **Booken**! 🌈","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsebastianfoder%2Fbooken","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsebastianfoder%2Fbooken","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsebastianfoder%2Fbooken/lists"}