A comprehensive Japanese immersion tracker that gamifies your language learning journey. Track progress across anime, manga, visual novels, reading, videos, and audio. Compete with friends, visualize improvement, and stay motivated.
- Track anime, manga, visual novels, books, videos, and audio
- Log episodes watched, pages read, character counts, and time spent
- Assign logs to specific media from AniList, VNDB, and YouTube
- Smart grouping of logs for easy media assignment
- XP & leveling system for reading and listening
- Daily streak tracking
- Leaderboards and achievements
- Reading speed (characters/hour), total immersion time, progress trends
- Interactive charts and monthly comparisons
- Media breakdown by content type
- AniList sync for anime/manga
- VNDB integration for visual novels
- YouTube support for Japanese content
- Public profiles and privacy controls
- Friend system and leaderboards
- Media matcher for collaborative log assignment
- React 18 + TypeScript
- React Router
- TanStack Query
- Tailwind CSS + DaisyUI
- Zustand for state management
- Chart.js for data visualization
- Vite for build tooling
- Node.js + Express
- TypeScript
- MongoDB + Mongoose
- JWT authentication
- bcrypt for password hashing
- GraphQL for external APIs
- Firebase for file storage
- Node.js 20+
- MongoDB
- Firebase (for file storage)
- API keys for AniList, VNDB, YouTube (optional)
-
Clone the repository
git clone https://github.com/HitogiDev/NihongoTracker.git cd NihongoTracker
-
Install with Docker (recommended for production or easy setup)
# Build and start all services (backend, frontend, MongoDB) docker compose up --build
- Edit
.env
files as needed before running. - The app will be available at http://localhost:5173 (or the port specified in your Docker config).
- Edit
-
Manual Setup (for development)
Backend Setup
cd Backend npm install cp .env.example .env # Edit .env with your configuration npm run dev
Frontend Setup
cd Frontend npm install npm run dev
-
Environment Variables
Backend
.env
:PORT=5000 TOKEN_SECRET=your_jwt_secret DATABASE_URL=mongodb://localhost:27017/nihongotracker FIREBASE_API_KEY=your_firebase_key FIREBASE_PROJECT_ID=your_project_id YOUTUBE_API_KEY=your_youtube_key NODE_ENV=development
- Register an account
- Start logging immersion activities
- Assign media to logs
- View stats and charts
- Compete on leaderboards
POST /api/auth/register
- RegisterPOST /api/auth/login
- LoginPOST /api/auth/logout
- Logout
GET /api/logs
- Get logsPOST /api/logs
- Create logDELETE /api/logs/:id
- Delete logPOST /api/logs/assign
- Assign media
GET /api/search/:type
- Search mediaGET /api/media/:type/:id
- Media details
GET /api/users/:username
- User profileGET /api/users/:username/stats
- User statsGET /api/ranking
- Leaderboards
We welcome contributions! Please see our contributing guidelines.
- Fork the repository
- Create a feature branch
- Make changes and add tests
- Submit a pull request
- ESLint and Prettier config provided
- Use TypeScript
- Follow naming conventions
ISC License. See LICENSE for details.
If you have issues or questions:
- Check Issues page
- Create a new issue