Modern full-stack anime streaming platform that provides an immersive experience for anime enthusiasts. Inspired by platforms like AnimeLib, it combines cutting-edge web technologies to deliver seamless anime discovery, streaming, and community features.
- Anime Streaming: Watch anime using embedded players from Kodik and SovetRomantica
- Comprehensive Anime Dataset: Prefetched and curated using Anilist and Shikimori APIs
- Episode Management: Detailed episode information and viewing capabilities
- Comments & Reviews: Comment on anime titles and individual episodes, write detailed reviews
- Personal Lists: Add anime to custom lists (e.g., "Plan to Watch", "Watching", "Completed")
- User Profiles: Personalized experience with user-specific content
- JWT Authentication: Secure JWT-based authorization system
- OAuth2 Ready: Planned OAuth2 integration for third-party authentication
- Role-based Access: Secure access controls for different user types
- Smart Filtering: Filter anime by tags, genres, ratings, types, and more
- Search Functionality: Powerful search with advanced filters
- Recommendation System: Personalized anime recommendations
- Containerized Architecture: Docker Compose for easy deployment
- GraphQL API: Efficient data fetching with GraphQL
- Redis Caching: Optimized performance with Redis caching layer
- Real-time Features: Planned real-time notifications and updates
- Next.js 14: React-based framework with App Router
- TanStack Query: Advanced data fetching and state management
- ShadCN UI: Accessible and customizable UI components
- Tailwind CSS: Utility-first CSS framework for rapid styling
- GraphQL Client: Apollo Client for efficient API communication
- React Hook Form: Form state management with validation
- Zod: TypeScript-powered schema validation
- Java Spring Boot 3: Robust backend framework
- MongoDB: NoSQL database for flexible data storage
- GraphQL: Flexible API queries with type safety
- Redis: In-memory data structure store for caching
- Spring Security: Comprehensive security framework
- Docker & Docker Compose: Containerized deployment
- Node.js (v18 or higher)
- Java 17 or higher
- Docker and Docker Compose
- MongoDB (or Docker for containerized setup)
- Clone the repository
git clone <repository-url>
cd fullstack-anime-platform- Set up environment variables
# Create environment files for backend and frontend
cp backend/.env.example backend/.env.local
cp frontend/.env.example frontend/.env.local- Start the application with Docker Compose
docker-compose up --build- Alternatively, run services separately
For Backend (in /backend directory):
./mvnw spring-boot:runFor Frontend (in /frontend directory):
cd frontend
npm install
npm run devSPRING_DATA_MONGODB_URI=mongodb://localhost:27017/fullstack-anime-platform
SPRING_DATA_MONGODB_DATABASE=fullstack-anime-platform
JWT_SECRET=your-jwt-secret-key
JWT_EXPIRATION=86400000
REDIS_HOST=localhost
REDIS_PORT=6379NEXT_PUBLIC_API_URL=http://localhost:8080/graphql
NEXT_PUBLIC_BASE_URL=http://localhost:3000/workspace/
├── backend/ # Spring Boot application
│ ├── src/main/java/ # Java source code
│ ├── src/main/resources/ # Configuration files
│ ├── pom.xml # Maven dependencies
│ └── Dockerfile # Backend container configuration
├── frontend/ # Next.js application
│ ├── src/ # Source code
│ ├── public/ # Static assets
│ ├── package.json # Node.js dependencies
│ └── Dockerfile # Frontend container configuration
├── docker-compose.yaml # Container orchestration
├── anime-data-set.json # Anime dataset
├── reviews-data-set.json # Reviews dataset
├── comments-data-set.json # Comments dataset
├── users-data-set.json # Users dataset
├── genres-data-set.json # Genres dataset
├── tags-data-set.json # Tags dataset
└── review_votes-data-set.json # Review votes dataset
The application uses GraphQL for API communication. The GraphQL endpoint is available at:
- Development:
http://localhost:8080/graphql - Production:
<base-url>/graphql
- Queries: Fetch anime, users, reviews, comments, and other data
- Mutations: Create, update, and delete operations
- Subscriptions: Real-time updates (planned feature)
docker-compose up -d --build# Build frontend
cd frontend
npm run build
# Build backend
cd backend
./mvnw clean package -PprodThis project is licensed under the MIT License - see the LICENSE file for details.
- Inspired by AnimeLib and similar platforms
- Built with data from Anilist and Shikimori APIs
- Special thanks to the open-source community for the amazing tools and libraries used in this project