Files
zen-kanji/README.md
2025-12-24 06:54:37 +01:00

100 lines
2.9 KiB
Markdown

# 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
- [Node.js](https://nodejs.org/) (v18 or higher recommended)
- [npm](https://www.npmjs.com/)
- [Docker](https://www.docker.com/) (for running a local database)
### Server Setup
1. **Navigate to the server directory:**
```bash
cd server
```
2. **Install dependencies:**
```bash
npm install
```
3. **Set up environment variables:**
Create a `.env` file in the `server/` directory and configure your database connection and any other required variables.
4. **Start the development server:**
```bash
npm run dev
```
The server should now be running on the port specified in your configuration (e.g., `http://localhost:3000`).
### Client Setup
1. **Navigate to the client directory:**
```bash
cd client
```
2. **Install dependencies:**
```bash
npm install
```
3. **Configure environment variables:**
Create a `.env` file in the `client/` directory to point to the correct backend API URL.
```
VITE_API_URL=http://localhost:3000/api/v1
```
4. **Run the development server:**
```bash
npm run dev
```
The application should be accessible at `http://localhost:5173`.
## Technologies Used
### Frontend (Client)
- **Framework**: [Vue.js 3](https://vuejs.org/)
- **Build Tool**: [Vite](https://vitejs.dev/)
- **Mobile**: [Capacitor](https://capacitorjs.com/)
- **Styling**: [Sass](https://sass-lang.com/)
- **State Management**: [Pinia](https://pinia.vuejs.org/)
- **Internationalization**: [Vue I18n](https://vue-i18n.intlify.dev/)
### Backend (Server)
- **Framework**: [Express.js](https://expressjs.com/)
- **Database**: [MongoDB](https://www.mongodb.com/)
- **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.