Kali is a digital library of Kankanaey words (in Roman characters) with their definitions and/or translations in English. The project aims to preserve one of the spoken dialects in the northern Philippines while making it accessible to anyone interested. Additionally, Kali serves as a learning experience to explore how various technologies work together, especially with server-side rendering, new server components, and client components.
- Search Functionality: Quickly search for words and their translations.
- Responsive Design: The web app is fully responsive, working on both desktop and mobile devices.
- Browse: Allows users to browse words by their starting letters.
- Multiple Definitions/Translations: Support multiple definitions or translations for a single word.
- Grammar and Usage Guide: Provide information on grammar and usage to aid in learning.
- Learning Tools: Include flashcards and quizzes to help users learn Kankanaey.
- API Documentation: Document the API for external use or integration.
- Automated Tests: Set up automated end-to-end (E2E) tests and unit tests with GitHub Actions for continuous integration.
- React: Frontend library for building user interfaces.
- Next.js: Framework for server-side rendering and static site generation.
- Turso: SQLite-compatible database built on libSQL.
- Drizzle: A lightweight ORM that's SQL-like for interacting with the database.
- GraphQL: Used to define schema and enforce data types in communication with the database.
- Apollo Client: State management library for GraphQL.
- FontAwesome: Icon library used for adding visual elements.
- Tailwind CSS: Utility-first CSS framework for styling the user interface.
- Clerk: Handles authentication and user management.
- Contentful: Content management system used for flexibility and future scalability, even if currently overkill.
- Unit Tests: Focused on testing hooks and functions implemented within the project.
- Server Components Testing: Testing server components in Next.js is under exploration, with potential solutions being researched.
This project is licensed under the GNU GPLv3.
For questions, suggestions, or collaboration opportunities, please reach out:
- GitHub: izalu99