Stop tracking gradle.properties
ZenKanji
ZenKanji is a web and mobile application designed to help users learn and review Japanese Kanji effectively. It provides a modern and intuitive interface for studying, tracking progress, and staying motivated on your language-learning journey.
Project Structure
This project is a monorepo containing two main packages:
client/: A Vue.js 3 application built with Vite that serves as the frontend. It is also configured with Capacitor to allow for native mobile builds.server/: A Node.js and Express application that provides the backend API for user authentication, data synchronization, and study progression.
Getting Started
To get the application running locally, you will need to set up both the client and the server.
Prerequisites
Server Setup
-
Navigate to the server directory:
cd server -
Install dependencies:
npm install -
Set up environment variables: Create a
.envfile in theserver/directory and configure your database connection and any other required variables. -
Start the development server:
npm run devThe server should now be running on the port specified in your configuration (e.g.,
http://localhost:3000).
Client Setup
-
Navigate to the client directory:
cd client -
Install dependencies:
npm install -
Configure environment variables: Create a
.envfile in theclient/directory to point to the correct backend API URL.VITE_API_URL=http://localhost:3000/api/v1 -
Run the development server:
npm run devThe application should be accessible at
http://localhost:5173.
Technologies Used
Frontend (Client)
- Framework: Vue.js 3
- Build Tool: Vite
- Mobile: Capacitor
- Styling: Sass
- State Management: Pinia
- Internationalization: Vue I18n
Backend (Server)
- Framework: Express.js
- Database: MongoDB
- Authentication: JWT-based and using your Wanikani API Key for login
Features
- Kanji Drawing: Interactive canvas for practicing Kanji writing.
- Spaced Repetition System (SRS): Smart review scheduling to optimize learning.
- Progress Tracking: Dashboard with widgets for accuracy, streaks, mastery, and more.
- Cross-Platform Sync: Synchronize your study progress across web and mobile devices.
- Collections: Browse and study Kanji by levels or themes.