Skip to content

izalu99/kali

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Kali

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.

Table of Contents

Features

  • 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.

Future Features

  • 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.

Technologies Used

  • 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.

Tests

  • 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.

License

This project is licensed under the GNU GPLv3.

Contact

For questions, suggestions, or collaboration opportunities, please reach out: