A full-stack web application for discovering and streaming anime, manga, novels, and latest anime news. Built with Django backend and Node.js API with TypeScript.
- Anime: Browse, search, and watch anime powered by Gogoanime
- Manga: Discover and read manga powered by Mangasee123
- Novels: Access light novels powered by Read Light Novels
- News: Stay updated with latest anime news from Anime News Network
- User Management: Authentication and session management with django-allauth
- Responsive Design: Tailwind CSS for mobile-friendly interface
apps/
βββ anime/ # Anime content management
βββ manga/ # Manga content management
βββ novels/ # Light novel content management
βββ news/ # News aggregation
βββ core/ # Core functionality (models, middleware)
βββ utils/ # Helper functions and custom template filters
xoanime/
βββ settings/ # Django settings (base, dev, config)
βββ urls.py # URL routing
βββ wsgi.py # Production server
βββ asgi.py # Async server
templates/ # HTML templates organized by app
staticfiles/ # CSS, JavaScript, images
api/
βββ src/
βββ main.ts # Fastify server setup
βββ routes/ # API endpoints
βββ anime/
βββ manga/
βββ news/
βββ novels/
- Framework: Django 5.0.1
- Language: Python 3.12+
- Authentication: django-allauth
- HTTP Client: requests
- Development: django-extensions, black, flake8
- Framework: Fastify 4.26.0
- Language: TypeScript
- Data Source: @consumet/extensions
- CORS: @fastify/cors
- Development: nodemon, prettier
- Styling: Tailwind CSS
- Assets: Static CSS, JavaScript, images
- Python 3.12 or higher
- Node.js 12.5.0 or higher
- Yarn 1.17.3 or higher (for API)
- Poetry (for Python dependency management)
-
Install Python dependencies:
poetry install
-
Create environment configuration (if needed):
# Set up environment variables in a .env file -
Run migrations:
python manage.py migrate
-
Collect static files:
python manage.py collectstatic
-
Start the Django development server:
python manage.py runserver
The server will be available at
http://localhost:8000
-
Navigate to the API directory:
cd api -
Install Node dependencies:
yarn install
-
Create environment variables:
# Create a .env file in the api/ directory PORT=5000 -
Build TypeScript:
yarn build
-
Start the API server:
# Development mode with hot reload yarn dev # Production mode yarn start
The API will be available at
http://localhost:5000
python manage.py runserver # Start development server
python manage.py migrate # Apply database migrations
python manage.py makemigrations # Create new migrations
python manage.py shell # Interactive Python shell
flake8 # Lint Python code
black . # Format Python codeyarn dev # Start development server with hot reload
yarn build # Compile TypeScript to JavaScript
yarn start # Run production build
yarn lint # Format code with prettierThe API provides the following endpoints (all GET requests):
| Route | Source | Description |
|---|---|---|
/anime/* |
Gogoanime | Anime content and metadata |
/manga/* |
Mangasee123 | Manga content and chapters |
/novels/* |
Read Light Novels | Light novel content |
/news/* |
Anime News Network | Latest anime news |
Base URL: http://localhost:5000
Example:
GET http://localhost:5000/anime/recent
GET http://localhost:5000/manga/search?query=naruto
GET http://localhost:5000/news/recent
Handles anime content, including recent episodes, popular shows, genres, search, and streaming.
Manages manga content with search, reading functionality, and bookmarks.
Light novel management with reading, search, and tracking.
Aggregates anime news and updates from various sources.
Core utilities including:
- Database models
- Custom middleware (XOSessionMiddleware)
- Admin interface configuration
Helper functions and custom template tags:
helpers/fetch.py- Data fetching utilitiestemplatetags/filters.py- Custom Django template filters
HTML templates are organized by app in the templates/ directory:
base/- Base layout and reusable components (navbar, sidebar, news feed)anime/- Anime-specific templatesmanga/- Manga-specific templatesnovels/- Novel-specific templatesnews/- News article templates
Located in staticfiles/:
styles/- Tailwind CSS and custom stylesscripts/- JavaScript for interactivity (app.js, player.js)images/- Image assets
Settings are split across multiple files in xoanime/settings/:
base.py- Base configurationdev.py- Development settingsconfig.py- Additional configuration
Create a .env file in both the root and api/ directories:
Root .env:
DEBUG=True
SECRET_KEY=your-secret-keyapi/.env:
PORT=5000Run linting and formatting:
# Python
flake8
black .
# TypeScript
yarn lint# Create new migration
python manage.py makemigrations
# Apply migrations
python manage.py migrate
# Show migration status
python manage.py showmigrations- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the ISC License - see the LICENSE file for details.
Akash Damle
- Email: akash.damle@outlook.com
- GitHub: @code-kasha
- Anime Data: Powered by Gogoanime
- Manga Data: Powered by Mangasee123
- News Data: Powered by Anime News Network
- Novels Data: Powered by Read Light Novels
- Data Scraping: @consumet/extensions
This project is for educational purposes only. Ensure you have the right to access and use content from the integrated sources. Always respect copyright and terms of service.
Note: This is a personal project. For production use, ensure proper authorization and licensing from content providers.