A modern, responsive anime tracking application built with vanilla HTML, CSS, and JavaScript. Track your anime progress, discover new series, and manage your watchlist with a beautiful, intuitive interface.
- Progress Tracking: Keep track of your anime episodes watched
- Real-time Search: Search anime using the Jikan API (MyAnimeList)
- Multiple Status Types: Watching, Completed, On Hold, Dropped, Plan to Watch
- Rating System: Rate your anime from 1-10
- Statistics Dashboard: View your watching stats and progress
- Responsive Design: Works perfectly on desktop, tablet, and mobile
- Beautiful Gradients: Eye-catching gradient designs
- Smooth Animations: Engaging hover effects and transitions
- Dark Mode Support: Automatic dark mode detection
- Accessibility: WCAG compliant with keyboard navigation
- Modern Cards: Clean, card-based layout with shadows and animations
- Trending Anime: See what's popular right now
- Quick Actions: Fast episode updates with +1 buttons
- Notifications: Toast notifications for user actions
- Local Storage: Data persists across browser sessions
- Filter & Sort: Filter by status, view modes (grid/list)
- Continue Watching: Quick access to currently watching anime
- Service worker support for offline functionality
- Responsive design for all screen sizes
- Touch-friendly interface for mobile devices
- Frontend: Vanilla HTML5, CSS3, JavaScript (ES6+)
- API: Jikan API (MyAnimeList unofficial API)
- Storage: Local Storage for data persistence
- Styling: CSS Custom Properties, Flexbox, Grid
- Icons: Font Awesome 6
- Typography: Google Fonts (Poppins)
- Framework: Bootstrap 5.3 for components
-
Clone or Download
git clone <repository-url> cd otakutrack
-
Open in Browser
- Simply open
index.htmlin your web browser - No build process required!
- Simply open
-
Or Use a Local Server (Recommended)
# Using Python python -m http.server 8000 # Using Node.js (if you have http-server installed) npx http-server # Using Live Server VS Code extension # Right-click on index.html and select "Open with Live Server"
-
Access the Application
- Open your browser and go to
http://localhost:8000
- Open your browser and go to
-
Add Your First Anime
- Click the "Add New" button or the floating action button (+)
- Search for an anime title
- Select from the search results
- Set your current episode and status
- Click "Add Anime"
-
Update Progress
- Use the "+1 Episode" button for quick updates
- Click "Update" to open the detailed progress modal
- Modify episodes, rating, and status as needed
-
Browse and Discover
- Check out the "Trending Now" section
- Use the search bar to find specific anime
- Click "Random" for a surprise recommendation
- Displays your overall statistics
- Shows total anime tracked, episodes watched, and hours viewed
- Add Anime: Start tracking a new series
- Discover: Browse trending and popular anime
- Trending: See what's currently popular
- Random: Get a random anime suggestion
- Filter by status (All, Watching, Completed, etc.)
- Switch between grid and list views
- Quick episode updates and detailed editing
- Upcoming Episodes: See when new episodes release
- Your Stats: Detailed statistics about your watching habits
The application uses CSS custom properties for easy theming:
:root {
--primary-gradient: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
--secondary-gradient: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);
--accent-gradient: linear-gradient(135deg, #4facfe 0%, #00f2fe 100%);
/* ... more variables */
}To use different APIs or endpoints, modify the CONFIG object in script.js:
const CONFIG = {
hianime: {
baseURL: 'https://your-api-endpoint.com',
endpoints: {
search: '/anime/search',
// ... other endpoints
}
}
};The application uses the Jikan API (unofficial MyAnimeList API) as the primary data source:
- Search: Real-time anime search with debouncing
- Details: Comprehensive anime information
- Trending: Popular and top-rated anime
- Random: Random anime discovery
While the application is designed to work with HiAnime.to, the actual API endpoints are configured to use Jikan API for reliability. To integrate with HiAnime.to:
- Update the API configuration in
script.js - Modify the data mapping functions
- Handle authentication if required
// User progress data
{
"anime_id": {
"title": "Anime Title",
"image": "image_url",
"currentEpisode": 12,
"totalEpisodes": 24,
"status": "watching",
"rating": 8,
"addedAt": 1640995200000,
"updatedAt": 1640995200000
}
}otakutrack_progress: User's anime progress dataotakutrack_settings: User preferences (future feature)otakutrack_cache: API response caching
- Chrome: 88+
- Firefox: 85+
- Safari: 14+
- Edge: 88+
- ES6+ Support
- CSS Grid and Flexbox
- Fetch API
- Local Storage
- CSS Custom Properties
- API Caching: 5-minute cache for API responses
- Debounced Search: Reduced API calls during typing
- Lazy Loading: Images load as needed
- Optimized Animations: GPU-accelerated transforms
- Minimal Dependencies: Vanilla JS for better performance
otakutrack/
โโโ index.html # Main HTML file
โโโ styles.css # Comprehensive styling
โโโ script.js # Application logic
โโโ README.md # This file
โโโ assets/ # Future: images, icons
OtakuTrackApp: Main application controllerAPIService: Handles all API communicationsProgressTracker: Manages user progress dataNotificationSystem: Toast notificationsUtils: Utility functions
- API Features: Extend the
APIServiceclass - UI Components: Add methods to
OtakuTrackApp - Storage: Extend the
ProgressTrackerclass - Styling: Add CSS to the appropriate section in
styles.css
-
Search Not Working
- Check browser console for CORS errors
- Verify internet connection
- Try using a local server instead of file:// protocol
-
Data Not Saving
- Ensure Local Storage is enabled
- Check browser privacy settings
- Verify localStorage quota hasn't been exceeded
-
Images Not Loading
- Check if third-party cookies are blocked
- Verify image URLs in browser network tab
- Some anime images may have CORS restrictions
-
Mobile Display Issues
- Ensure viewport meta tag is present
- Check for CSS compatibility with older mobile browsers
- Test in device developer tools
GET /anime?q={query}- Search animeGET /anime/{id}/full- Get anime detailsGET /top/anime- Get top/trending animeGET /random/anime- Get random anime
- Jikan API: 3 requests per second, 60 per minute
- Built-in caching reduces API calls
- Debounced search prevents spam
- Bug Reports: Open an issue with details
- Feature Requests: Suggest new functionality
- Code Contributions: Submit pull requests
- Documentation: Improve README or code comments
- Design: Suggest UI/UX improvements
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
This project is open source and available under the MIT License.
- MyAnimeList: For the comprehensive anime database
- Jikan API: For providing free access to MAL data
- Bootstrap: For the component framework
- Font Awesome: For the beautiful icons
- Google Fonts: For the Poppins typography
- Unsplash: For high-quality placeholder images
- User Authentication: Login/register functionality
- Cloud Sync: Sync data across devices
- Social Features: Follow friends, share lists
- Advanced Statistics: Detailed analytics and charts
- Recommendation Engine: AI-powered anime suggestions
- Themes: Multiple color schemes and themes
- Export/Import: Backup and restore functionality
- Offline Mode: Full offline functionality with sync
- Episode Tracking: Link to streaming services
- Manga Support: Track manga and manhwa progress
- Native mobile apps
- Browser extension
- Integration with streaming platforms
- Community features and forums
If you encounter any issues or have questions:
- Check the troubleshooting section above
- Search existing issues on GitHub
- Create a new issue with detailed information
- Join our community discussions
Made with โค๏ธ for the anime community
Start tracking your anime journey today! ๐