Still in beta. For feedback, email me at aramb@aramb.dev
Track the latest updates and improvements.
Committed on by Abdur-Rahmān Bilāl
Commit: 119a4a2
feat(vocabulary): implement component-based architecture for vocabulary pages
Committed on by Abdur-Rahmān Bilāl
Commit: 92d4dcc
Committed on by Abdur Rahman Bilal
Commit: 43523f2
Committed on by Abdur Rahman Bilal
Commit: 880eeec
Introduces a `showSidebar` prop to the `Layout` component, which defaults to true. This allows parent components to programmatically hide the sidebar, providing more flexibility for pages that may not require it. The visibility logic is now centralized in a `sidebarVisible` variable for clarity.
Committed on by Abdur Rahman Bilal
Commit: f7ac175
Implement comprehensive 404 error handling for both the user-facing application and the API. - A new custom 404 page (`src/app/not-found.tsx`) is introduced to provide a better user experience for non-existent pages. - The previous API 404 handling (`src/app/api/not-found.tsx`) is replaced with a more robust catch-all API route (`src/app/api/[...slug]/route.ts`). This ensures that any request method (GET, POST, etc.) to an undefined API endpoint receives a standardized JSON 404 response.
Committed on by Abdur Rahman Bilal
Commit: 52fe63a
Updates vocabulary API route handlers to be compatible with changes in Next.js where route segment parameters are wrapped in a Promise. The GET functions in the vocabulary routes are now `async` and `await` the `params` object to correctly resolve and access the `bookId` and `lessonId`. This fixes a TypeScript type error and ensures the routes function as expected.
Committed on by Abdur Rahman Bilal
Commit: be71408
This commit updates the LLM context file to include documentation for the newly added vocabulary API. It details the new global, per-book, and per-lesson vocabulary endpoints. The `VocabularyItem` data structure is also defined to provide schema context for the models.
Committed on by Abdur Rahman Bilal
Commit: 4ee0353
Adds three new API endpoints for retrieving vocabulary data: - `GET /api/vocabulary`: Fetches all vocabulary across all books, with optional filtering by book and lesson. - `GET /api/books/{bookId}/vocabulary`: Retrieves all vocabulary for a specific book. - `GET /api/books/{bookId}/lessons/{lessonId}/vocabulary`: Retrieves vocabulary for a specific lesson within a book. The root API documentation at `/api` has also been updated to reflect these new routes and the `VocabularyItem` data structure.
Committed on by Abdur Rahman Bilal
Commit: c4eda09
These planning documents are no longer relevant as the features and refactors they describe have been implemented. Keeping them in the repository creates unnecessary clutter. The following files have been removed: - `page-props-migration-plan.md` - `vocabulary-refactor-plan.md` - `vocabulary-schema-design.md` - `vocabulary-schema-modification-plan.md
Committed on by Abdur Rahman Bilal
Commit: 634ac64
Introduces a new `isPublished` flag to the `BookVocabulary` schema to control the visibility and accessibility of vocabulary books. This allows for books to be listed in the UI but marked as "Coming Soon" until their content is complete. - Adds `isPublished?: boolean` to the `BookVocabulary` interface, defaulting to `true` for backward compatibility. - Updates the vocabulary page to conditionally render book cards based on the `isPublished` flag. - Unpublished books are styled as disabled, display a "Coming Soon" badge, and are not clickable. - Sets Madinah Book 2 and the newly added Book 3 to `isPublished: false`. - Adds a planning document outlining the schema modification.
Committed on by Abdur-Rahmān Bilāl
Commit: 91ad845
feat(data): refactor and update book 1 lesson data
Committed on by Abdur Rahman Bilal
Commit: 9808688
This commit refactors the structure of `book1.ts` and applies numerous content corrections and additions to the lesson data. The dynamic vocabulary merging logic has been removed to simplify the data file. Lesson content is now self-contained, with vocabulary to be handled by a separate mechanism. Key content updates include: - Correction of various grammar rule explanations and lesson introductions for clarity and accuracy (e.g., in lessons 5, 6, 8, 14, 23). - Fixed the Arabic title for Lesson 8 from "Lesson 18" to "Lesson 8". - Added a new grammar rule (`كِتَابُ مَنْ هَذَا؟`) to Lesson 5. BREAKING CHANGE: The `vocabulary` property has been removed from lesson objects within `book1Data`. Any component that previously accessed `lesson.vocabulary` will need to be updated.
Committed on by Abdur-Rahmān Bilāl
Commit: 86b2095
feat(vocab): Comprehensive Vocabulary Data and System Refactor
Committed on by Abdur Rahman Bilal
Commit: f274527
Committed on by Abdur Rahman Bilal
Commit: c4cd63d
Committed on by Abdur Rahman Bilal
Commit: 3d9c347
Excludes the `src/data/vocab/book2` and `src/data/vocab/book3` directories from the TypeScript compilation process. This is a temporary measure while these vocabulary sets are under development.
Committed on by Abdur Rahman Bilal
Commit: 79a38f8
Committed on by Abdur Rahman Bilal
Commit: 6cfa32a
This change replaces all instances of "mosque" and "mosques" with "masjid" and "masjids" respectively in English translations and definitions across all vocabulary and lesson data. Using the transliterated term "masjid" is more consistent with the learning context and helps reinforce the Arabic vocabulary for students.
Committed on by Abdur Rahman Bilal
Commit: 38f747c
This commit updates the vocabulary data structures to use the more concise ISO 639-1 language codes ('ar', 'en') instead of the full names ('arabic', 'english'). This change is applied consistently across all vocabulary data files and the core `VocabularyList` and `BookVocabulary` type definitions. The `organizeItemsIntoLists` function has also been updated to reflect this new standard. BREAKING CHANGE: The keys for localized strings in vocabulary data objects have been changed from 'arabic' and 'english' to 'ar' and 'en' respectively. Any code consuming this data must be updated to use the new keys.
Committed on by Abdur Rahman Bilal
Commit: 303a4a5
The `params` prop in Next.js page components can be a promise. This change updates the vocabulary pages to be async components, allowing them to `await` the resolved `params` before they are used to fetch data.
Committed on by Abdur-Rahmān Bilāl
Commit: 0225fea
feat(api): add books and lessons API endpoints with documentation
Committed on by Abdur-Rahmān Bilāl
Commit: 1feeea5
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Committed on by Abdur-Rahmān Bilāl
Commit: 42d3621
Committed on by Abdur Rahman Bilal
Commit: cc1d8b1
Implement a new API documentation page with detailed endpoint descriptions, response schemas, and usage examples. The page includes sections for books, lessons, and metadata endpoints, along with data structure definitions and LLM integration guidance.
Committed on by Abdur Rahman Bilal
Commit: b923b55
Ensure params are properly awaited before destructuring to prevent runtime errors
Committed on by Abdur Rahman Bilal
Commit: dd21e3e
Committed on by Abdur Rahman Bilal
Commit: adaebf8
Committed on by Abdur-Rahmān Bilāl
Commit: 54d058f
Committed on by Abdur-Rahmān Bilāl
Commit: b9e0efb
Committed on by Abdur-Rahmān Bilāl
Commit: 99dd7c1
Fix beta banner positioning and improve lesson excerpt display
Committed on by Abdur-Rahmān Bilāl
Commit: 0fbf29d
Committed on by Abdur Rahman Bilal
Commit: 4688974
Refactor text truncation conditions to be more readable by breaking them into multiple lines. Also update TODO.md by marking completed tasks and improving formatting.
Committed on by Abdur Rahman Bilal
Commit: da00fbb
Increase line clamp and adjust text styling for better readability of lesson introductions in both Arabic and English
Committed on by Abdur-Rahmān Bilāl
Commit: 81dbe18
feat(content): add comprehensive content for Madinah Book 3
Committed on by Abdur-Rahmān Bilāl
Commit: 03fe08b
This commit populates Madinah Book 3 with its complete set of lessons and grammatical rules, making the book fully accessible within the application. Previously, Book 3 was marked as "coming soon" with placeholder content. - Added: - Full content for 34 lessons, including lesson IDs, bilingual (Arabic/English) titles, and bilingual introductions. - Detailed grammatical rules for each lesson, featuring rule names, Arabic text, and English explanations. - Citations to source material page numbers within rule explanations for easy reference (e.g., `[cite: 123]`). - Changed: - The main `title` and `description` for Book 3 to use fully diacritized Arabic and updated English text. - The `available` status of Book 3 to `true`. - Removed: - The `comingSoon` flag for Book 3. - The placeholder "Coming Soon" lesson data.
Committed on by Abdur-Rahmān Bilāl
Commit: ddf67e4
feat(layout): add beta feedback banner to root layout
Committed on by Abdur-Rahmān Bilāl
Commit: 4eabee6
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Committed on by Abdur-Rahmān Bilāl
Commit: 8f26e57
- Corrected a syntax error in `src/data/book3.ts` around line 605 caused by a problematic single quote within the string `name: 'عَسَى ('Asā - Perhaps/It may be)',`. - Addressed a typo in `src/data/book3.ts` around line 27, correcting 'الْمُdَرِّسَ' to 'الْمُدَرِّسَ' in an explanation string. These changes resolve a JavaScript syntax error and a content typo, ensuring data integrity for Book 3.