Code Monkey home page Code Monkey logo

hivio's Introduction

Hivio

Hivio - Your Watchlist Companion

Hivio, pronounced /haɪˈviːoʊ/ (HAY-vee-oh), is a watchlist companion that helps you easily search, add, manage and organize your series and movies through a user-friendly interface; helping you keep track of your favorite movies and shows. It also helps you discover new content that you might want to watch with the help of the Hivio community, a collection of public user profiles you can discover.

wakatime

Tech Stack

Getting Started Locally

  1. Clone this repository with the following command and head over to the project.
git clone https://github.com/AbrahamX3/hivio.git
  1. Install EdgeDB, download it here: https://www.edgedb.com/install

  2. Run the following command to create and start a development EdgeDB instance (might take a while due to migrations) locally

edgedb project init
  1. Rename the .env.example file to .env.

  2. Head over to https://www.themoviedb.org/ and create an account. Then head over to https://www.themoviedb.org/settings/api to apply for an API key. In your .env file, fill in the TMDB_API_KEY variable with your API key. This is needed to fetch the data from TMDb when adding a new title.

  3. To setup EdgeDB authentication (used to access the dashboard and create public profiles), run the following command

 edgedb ui
  1. Head over to http://localhost:10704/ui/main/auth, navigate to Providers and find the Google provider (currently the only provider configured in the Hivio app). Go to https://console.cloud.google.com/apis/credentials and create a new OAuth client ID. Once you have created the client ID, copy the Client ID and Client Secret and paste them in the Client ID and Client Secret fields of the Google provider in the UI. For additional_scope add profile email as the value, this is needed for creating the user's profile, then click on Add Provider.

  2. In the Google API Console, in the same page where you copied your OAuth data, add the following url to Authorized JavaScript origins: http://localhost:3000 and in Authorized redirect URIs: http://localhost:10702/db/main/ext/auth/callback.

  3. Then head over to the Config tab on the EdgeDB UI and fill in the app_name with a name for your app, click on Generate Random Key and for allowed_redirect_urls add the following urls below and press Update:

http://localhost:3000
http://localhost:3000/hive
http://localhost:3000/auth/signin
  1. Install your dependencies with the following command
bun install
  1. Run the prebuild command to generate the EdgeDB queries and interfaces.
bun run prebuild
  1. Finally, run the following command to start the development server with the following command
bun run dev
  1. Open http://localhost:3000 with your browser to see the application. You can click on Get Started to login with your Google account.

Deploying to Production

  1. You'll need an EdgeDB cloud instance to deploy to production. Generate a secret key and have your instance details on hand to then provide to the following enviorment variables:
EDGEDB_SECRET_KEY=""
EDGEDB_INSTANCE=""
  1. Run the following command to authenticate and apply migrations to your cloud instance (this might take a while to do):
edgedb cloud login
edgedb migrate -I <username>/<instance_name>
  1. Then do the steps in Getting Started Locally from 6 to 8 with the only modification being replacing the URL's with your production url details. Example http://localhost:3000/ to https://hivio.vercel.app/

  2. Deploy to Vercel or any other cloud provider

Deploy with Vercel

License

Licensed under the MIT license

hivio's People

Contributors

abrahamx3 avatar

Stargazers

Aleksandra avatar

Watchers

 avatar

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.