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.
Main dashboard showing your recent activity and progress overview
Track your immersion across multiple media types
Detailed charts and statistics for your learning journey
Compete with other learners globally
Join or create clubs with your friends
- 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
.envfiles 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