Giter Site home page Giter Site logo

ericklimas / anime-website Goto Github PK

View Code? Open in Web Editor NEW
61.0 1.0 21.0 11.64 MB

AniProject: Watch Animes, Read Mangas and make Comments on this website made with Next.js, TypeScript, Firebase, Anilist, Consumet and Aniwatch API. AD FREE.

Home Page: https://aniproject-dev.vercel.app/

License: Other

TypeScript 70.57% CSS 28.04% JavaScript 1.39%
typescript firebase anime anime-streaming anilist anime-website animes nextjs anime-api aniwatch

anime-website's Introduction

AniProject

AniProject Website Logo

Project of animes and mangas website, utilizing the AniList, Consumet and Aniwatch API, which has info of animes and mangas released, data of the cast of that media, and many other things.

You can access this website on Vercel or Render (really slow).

Navigation

๐Ÿ”จ Features

  • Search: Get a list of all animes and mangas you want using filters.
  • Watch: Watch any available episode.
  • Read: Read any manga chapter available.
  • Comment: Write what you thougth of that episode or just tell something that every should know about.
  • Log In: You can log in with Google, GitHub or Anonymously (with some restrictions).
  • Keep Watching: Continue the episode from where you stop last time.
  • Be Notified: When a New Episode is Released, you get a notification on the website.
  • Bookmark your favourite animes e mangas: Save for later your animes and mangas.
  • Bookmark the episodes you watched: And keep watching from there later
  • News Feed: Keep up with the latest news of animes, mangas and the industry.

๐Ÿ“Œ Under Development

  • Add Reply to Comments

โœ”๏ธ Tecnologies Used

Front-end (on netlify.com):

  • React
  • Next.js
  • TypeScript
  • Axios
  • Firebase
  • GraphQL
  • Framer Motion
  • Swiper
  • Anilist API
  • Consumet API
  • Aniwatch API

Back-End:

  • Firebase
  • Next.js API Routes

๐Ÿ’ป How Can I Run It?

  1. Fork (recommended) or Clone this repository
  git clone https://github.com/ErickLimaS/anime-website.git
  1. Run npm install on your CMD to get all dependencies
npm install
  1. Now you will need to create a .env.local file on the project root folder with the url to where your Consumet and Aniwatch is setted and the settings to your Firebase Account.

    • Go to these repos and host your own instance:
    • OPTIONAL: This project uses a JSON file (47 mb) filled with Animes and Mangas data as a offline Database. This repository already has this file, but it might be outdated, so you decide if you want to ignore this step.
      • Go to anime-offline-database and download the JSON file that will be used on only Search Page (or you can make some changes and use some API to fetch the data).
      • With the file downloaded, put it in the /app/api/anime-info directory, replacing the previous one.
    • On Firebase, get your configs to use the Authentication and Firestore Database.
      • All the Firebase info needed bellow can be found when you create a new project.
      • IMPORTANT: Make Sure to ALLOW your Hosted Website Domain on Firebase Authentication!

With all that done, you will need to fill the .env.local like the example bellow:

NEXT_PUBLIC_CONSUMET_API_URL=https://your-hosted-consumet-api-url.com
NEXT_PUBLIC_ANIWATCH_API_URL=https://your-hosted-aniwatch-api-url.com
// Make sure to add the pathname "/api/animes-database" bellow
NEXT_PUBLIC_NEXT_INTERNAL_API_URL=https://url-to-where-your-website-is-hosted.com/api/animes-database
NEXT_PUBLIC_FIREBASE_API_KEY=firebase-setting-related-to-this-field
NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=firebase-setting-related-to-this-field
NEXT_PUBLIC_FIREBASE_PROJECT_ID=firebase-setting-related-to-this-field
NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=firebase-setting-related-to-this-field
NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER=firebase-setting-related-to-this-field
NEXT_PUBLIC_FIREBASE_APP_ID=firebase-setting-related-to-this-field
NEXT_PUBLIC_FIREBASE_MEASUREMENT_ID=firebase-setting-related-to-this-field
NEXT_PUBLIC_FIREBASE_DATABASE_URL=firebase-setting-related-to-this-field
  1. Now run npm run dev to initialize the website
npm run dev
  1. That's it! It should be running.

๐Ÿ“‚ How Firebase is Organized

Authentication

With Firebase Authentication, theres 4 methods of Login/Signup:

  • Email
  • Google
  • GitHub
  • Anonymous

It is used to store on User Document things like:

  • User Profile Photo
  • Username
  • Preferences (media source, adult content, subtitles and more)
  • Comments
  • Notifications
  • Bookmarked Medias
  • Currently Watching Medias
  • Episodes Watched/Chapters Read

Collections and Documents

With Firebase Database, we have 3 Collections:

Users

Stores only Users Documents after a successfull signup.

Comments

Stores comments made on episodes or on its main page.

Its separated based on Anilist API Media IDs Documents, and after that, a Collection that holds all comments to this media and other related to a episode where that comment was made.

It strongly depends on Users Collection, due to each comment needs its user (owner). Each comment has a referer to its owner and stores its interactions, with Likes and Dislikes.

When a Comment is made, it saves sort of a log on User Document, with infos like interactions with other comment or written on a episode.

Notifications

The Notifications Collections stores a document for each Media ID related to Anilist API every time a user assigned himself to be notified about a new episode release.

Each document has a Collection that holds every user assigned to receive a notification.

In this document, has info of all episodes already notified to any user and the next to be notified, cover art, if is complete, status and last update date.

  • User Document Relation: After a successfull notification is deliveried to user, it stores the last episode info on User Document, so it can be notified again and the next one is released.

๐Ÿ“ท Preview/Screenshots

Home

Home page 1 Home page 2 Home page 3 Home page 4 Home page 5 Home page 6

Anime/Manga Page

Anime/Manga Page 1 Anime/Manga Page 2 Anime/Manga Page 3 Anime/Manga Page 4

Watch Episode Page

Watch Episode Page 1 Watch Episode Page 2

Read Page

Read Chapter Page 1

Search/Filter Page

Search/Filter Page 1

Watchlist Page

Watchlist Page 1

News Home Page

News Home Page 1 News Home Page 2 News Home Page 3

News Article Page

News Article Page 1

anime-website's People

Contributors

ericklimas avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

anime-website's Issues

Multiple errors and issues

I think this is a bug. Like for example, when trying to watch an anime, the player is blank until you refresh the page, then it shows up, same with the initial gogoanime play button to load on the anime description page. Im not sure why

video not playing

hello @ErickLimaS the video is not playing on my deployed site it say something about api and something went wrong iam also adding the screenshot of the issue could you help me rectify the issue.
i have hosted the api`s and added the links in the env file.
image
the anime loading and manga showing is working fine but playing them is not working and the episode loading time is also to much.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.