{"id":49735463,"url":"https://github.com/zer0009/anime-shadows","last_synced_at":"2026-05-09T07:45:42.714Z","repository":{"id":247391063,"uuid":"822139565","full_name":"zer0009/anime-shadows","owner":"zer0009","description":"A modern, full-stack anime streaming platform built with React and Express.js, featuring a comprehensive anime database, user authentication, and administrative tools.","archived":false,"fork":false,"pushed_at":"2025-09-17T23:46:45.000Z","size":5662,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-05-09T07:45:42.047Z","etag":null,"topics":["anime","anime-api","anime-downloader","anime-website","heroku","javascript","nodejs","react","reactjs","streaming"],"latest_commit_sha":null,"homepage":"https://animeshadows.xyz/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zer0009.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-06-30T11:44:07.000Z","updated_at":"2025-09-17T23:46:48.000Z","dependencies_parsed_at":"2024-08-19T05:50:52.601Z","dependency_job_id":"a84e04b5-cfb1-47b0-9591-2b1984a40743","html_url":"https://github.com/zer0009/anime-shadows","commit_stats":null,"previous_names":["zer0009/anime-shadows"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/zer0009/anime-shadows","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zer0009%2Fanime-shadows","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zer0009%2Fanime-shadows/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zer0009%2Fanime-shadows/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zer0009%2Fanime-shadows/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zer0009","download_url":"https://codeload.github.com/zer0009/anime-shadows/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zer0009%2Fanime-shadows/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32811662,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-08T08:22:46.396Z","status":"online","status_checked_at":"2026-05-09T02:00:06.633Z","response_time":123,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["anime","anime-api","anime-downloader","anime-website","heroku","javascript","nodejs","react","reactjs","streaming"],"created_at":"2026-05-09T07:45:41.150Z","updated_at":"2026-05-09T07:45:42.706Z","avatar_url":"https://github.com/zer0009.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Anime Shadows\n\nA modern, full-stack anime streaming platform built with React and Express.js, featuring a comprehensive anime database, user authentication, and administrative tools.\n\n## 🎯 Project Overview\n\nAnime Shadows is a complete anime streaming platform that provides users with:\n\n- **Extensive Anime Library**: Browse and discover anime series and movies\n- **User Authentication**: Secure registration and login system\n- **Personal Features**: Favorites, watch history, and user profiles\n- **Search \u0026 Filter**: Advanced search and filtering capabilities\n- **Admin Dashboard**: Content management and moderation tools\n- **Responsive Design**: Optimized for desktop and mobile devices\n- **Multi-language Support**: Internationalization with i18next\n- **SEO Optimized**: Server-side rendering and sitemap generation\n\n## 🏗️ Architecture\n\n- **Frontend**: React 18 with Vite, React Router, Material-UI\n- **Backend**: Express.js with MongoDB\n- **Authentication**: JWT-based authentication\n- **Database**: MongoDB with Mongoose ODM\n- **Deployment**: Netlify (Frontend) + Heroku (Backend)\n- **Security**: Helmet, CORS, Rate limiting, XSS protection\n\n## 📋 Prerequisites\n\n- Node.js (v20.x or higher)\n- npm or yarn\n- MongoDB database\n- Cloudinary account (for image storage)\n\n## 🚀 Installation Instructions\n\n### 1. Clone the Repository\n\n```bash\ngit clone \u003crepository-url\u003e\ncd anime-shadows\n```\n\n### 2. Install Root Dependencies\n\n```bash\nnpm install\n```\n\n### 3. Frontend Setup\n\n```bash\ncd front\nnpm install\n```\n\n### 4. Backend Setup\n\n```bash\ncd ../backend\nnpm install\n```\n\n## ⚙️ Configuration\n\n### Backend Environment Variables\n\nCreate a `.env` file in the `backend` directory:\n\n```env\n# Server Configuration\nPORT=5000\nNODE_ENV=development\n\n# Database\nMONGODB_URI=mongodb://localhost:27017/anime-shadows\n# or for MongoDB Atlas:\n# MONGODB_URI=mongodb+srv://username:password@cluster.mongodb.net/anime-shadows\n\n# JWT Secret\nJWT_SECRET=your-super-secret-jwt-key\n\n# Cloudinary Configuration\nCLOUDINARY_CLOUD_NAME=your-cloud-name\nCLOUDINARY_API_KEY=your-api-key\nCLOUDINARY_API_SECRET=your-api-secret\n\n# CORS Configuration\nCORS_ORIGIN=http://localhost:5173\n```\n\n### Frontend Environment Variables\n\nCreate a `.env` file in the `front` directory:\n\n```env\n# API Configuration\nVITE_API_URL=http://localhost:5000/api\n\n# Google Analytics (optional)\nVITE_REACT_APP_GA_MEASUREMENT_ID=your-ga-measurement-id\n```\n\n### Database Setup\n\n1. **Local MongoDB**: Install MongoDB locally or use MongoDB Atlas\n2. **Database Initialization**: The application will automatically create collections on first run\n3. **Admin User**: Use the admin registration endpoint to create the first admin user\n\n## 🎮 Usage Guide\n\n### Development Mode\n\n#### Start Backend Server\n\n```bash\ncd backend\nnpm run dev\n```\n\nThe backend server will start on `http://localhost:5000`\n\n#### Start Frontend Development Server\n\n```bash\ncd front\nnpm run dev\n```\n\nThe frontend will start on `http://localhost:5173`\n\n### Production Mode\n\n#### Build Frontend\n\n```bash\ncd front\nnpm run build\n```\n\n#### Start Production Server\n\n```bash\ncd backend\nnpm start\n```\n\n### Available Scripts\n\n#### Root Directory\n- `npm start`: Start the backend server\n\n#### Frontend (`/front`)\n- `npm run dev`: Start development server\n- `npm run build`: Build for production\n- `npm run preview`: Preview production build\n- `npm run lint`: Run ESLint\n- `npm run generate-sitemap`: Generate sitemap\n\n#### Backend (`/backend`)\n- `npm start`: Start production server\n- `npm run dev`: Start development server with nodemon\n- `npm run update-slugs`: Update anime slugs\n\n## 📚 API Documentation\n\n### Base URL\n```\nhttp://localhost:5000/api\n```\n\n### Authentication Endpoints\n\n#### User Registration\n```http\nPOST /api/user/register\nContent-Type: application/json\n\n{\n  \"username\": \"string\",\n  \"email\": \"string\",\n  \"password\": \"string\"\n}\n```\n\n#### User Login\n```http\nPOST /api/user/login\nContent-Type: application/json\n\n{\n  \"email\": \"string\",\n  \"password\": \"string\"\n}\n```\n\n### Anime Endpoints\n\n#### Get All Anime\n```http\nGET /api/anime\nQuery Parameters:\n- page: number (default: 1)\n- limit: number (default: 20)\n- search: string\n- genre: string\n- type: string\n- status: string\n```\n\n#### Get Anime by Slug\n```http\nGET /api/anime/:slug\n```\n\n#### Get Popular Anime\n```http\nGET /api/anime/popular\n```\n\n### Episode Endpoints\n\n#### Get Episodes for Anime\n```http\nGET /api/episodes/anime/:animeId\n```\n\n#### Get Episode by Slug\n```http\nGET /api/episodes/:episodeSlug\n```\n\n### Genre \u0026 Type Endpoints\n\n#### Get All Genres\n```http\nGET /api/genres\n```\n\n#### Get All Types\n```http\nGET /api/types\n```\n\n### Season Endpoints\n\n#### Get Seasonal Anime\n```http\nGET /api/seasons/:year/:season\n```\n\n### Admin Endpoints (Requires Authentication)\n\n#### Create Anime\n```http\nPOST /api/admin/anime\nAuthorization: Bearer \u003ctoken\u003e\nContent-Type: application/json\n```\n\n#### Update Anime\n```http\nPUT /api/admin/anime/:id\nAuthorization: Bearer \u003ctoken\u003e\n```\n\n#### Delete Anime\n```http\nDELETE /api/admin/anime/:id\nAuthorization: Bearer \u003ctoken\u003e\n```\n\n### Response Format\n\n#### Success Response\n```json\n{\n  \"success\": true,\n  \"data\": {},\n  \"message\": \"Success message\"\n}\n```\n\n#### Error Response\n```json\n{\n  \"success\": false,\n  \"error\": {\n    \"message\": \"Error message\",\n    \"code\": \"ERROR_CODE\"\n  }\n}\n```\n\n## 🤝 Contribution Guidelines\n\n### Getting Started\n\n1. **Fork the Repository**: Create a fork of the project\n2. **Create a Branch**: Create a feature branch from `main`\n   ```bash\n   git checkout -b feature/your-feature-name\n   ```\n3. **Make Changes**: Implement your feature or bug fix\n4. **Test**: Ensure all tests pass and add new tests if needed\n5. **Commit**: Use conventional commit messages\n   ```bash\n   git commit -m \"feat: add new anime search feature\"\n   ```\n6. **Push**: Push your changes to your fork\n7. **Pull Request**: Create a pull request with a clear description\n\n### Code Style\n\n- **Frontend**: Follow React best practices and use ESLint configuration\n- **Backend**: Follow Node.js conventions and use consistent formatting\n- **Commits**: Use conventional commit format (feat, fix, docs, style, refactor, test, chore)\n\n### Development Guidelines\n\n- Write clear, self-documenting code\n- Add comments for complex logic\n- Ensure responsive design for frontend changes\n- Test API endpoints thoroughly\n- Update documentation for new features\n- Follow security best practices\n\n### Reporting Issues\n\n- Use the GitHub issue tracker\n- Provide detailed reproduction steps\n- Include environment information\n- Add screenshots for UI issues\n\n### Feature Requests\n\n- Open an issue with the \"enhancement\" label\n- Describe the feature and its benefits\n- Discuss implementation approach\n\n## 📄 License Information\n\nThis project is licensed under the **ISC License**.\n\n### ISC License\n\nCopyright (c) 2025 Anime Shadows\n\nPermission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n\n## 🔧 Troubleshooting\n\n### Common Issues\n\n#### MongoDB Connection Error\n- Ensure MongoDB is running\n- Check connection string in `.env`\n- Verify network connectivity\n\n#### CORS Errors\n- Update `CORS_ORIGIN` in backend `.env`\n- Check frontend API URL configuration\n\n#### Build Errors\n- Clear node_modules and reinstall dependencies\n- Check Node.js version compatibility\n- Verify environment variables\n\n#### Authentication Issues\n- Check JWT secret configuration\n- Verify token expiration settings\n- Clear browser localStorage/cookies\n\n### Performance Optimization\n\n- Enable compression in production\n- Use CDN for static assets\n- Implement caching strategies\n- Optimize database queries\n- Use image optimization\n\n## 📞 Support\n\nFor support and questions:\n\n- **Issues**: GitHub Issues\n- **Documentation**: Check this README and inline code comments\n- **Community**: Join our community discussions\n\n## 🚀 Deployment\n\n### Frontend (Netlify)\n\n1. Connect your GitHub repository to Netlify\n2. Set build command: `npm install --prefix front \u0026\u0026 npm run build --prefix front`\n3. Set publish directory: `front/dist`\n4. Configure environment variables in Netlify dashboard\n\n### Backend (Heroku)\n\n1. Create a new Heroku app\n2. Set buildpacks for Node.js\n3. Configure environment variables\n4. Deploy from GitHub or using Heroku CLI\n\n---\n\n**Built with ❤️ by the Anime Shadows Team**","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzer0009%2Fanime-shadows","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzer0009%2Fanime-shadows","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzer0009%2Fanime-shadows/lists"}