Git Product home page Git Product logo

myflicklist's Introduction

๐Ÿ“บ MyFlickList

Build Coverage Discord Donate

Under development!

MyFlickList is a social cataloging platform where users can track movies and TV shows they have watched, leave reviews, get personal recommendations, share their lists with friends, discuss related topics, and many other things.

The goal is to provide a completely open and unified platform for everyone to express and share their tastes in movies, TV shows, anime, and other motion picture media, with a heavy emphasis on the social aspect of the process. Inspired by other projects, such as MyAnimeList, MyDramaList, Letterboxd.

Local environment

MyFlickList consists of 3 major components: Postgres database (mfl.db), ASP.NET Core REST API (mfl.api), and a React client (mfl.app). There are a few different ways to run them.

Isolated setup (Docker)

Using Docker Compose, you can easily spin up MFL in a virtualized environment. This option works well if you just need to get everything running, but is not very suitable for iterative development due to lack of debugging and longer feedback loop.

Prerequisites:

Steps:

  • Change directory to repository root
  • Build & run: docker-compose up --build

Individual containers should be exposed on the following ports:

  • Database: localhost:5432
  • API: localhost:5000
  • App: localhost:3000

Hybrid setup (Docker + local)

When actively working on the project, it's more convenient to run only the database in Docker, while having everything else running locally. This makes it possible to debug individual components and iterate more quickly.

Prerequisites:

Steps:

  • Run database: docker-compose up mfl.db (Terminal 1)
  • Change directory to /MyFlickList.Api (Terminal 2)
  • Run API: dotnet run
  • Change directory to /MyFlickList.App (Terminal 3)
  • Install node packages: npm install
  • Run app: npm start

Individual containers should be exposed on the following ports:

  • Database: localhost:5432
  • API: localhost:5000
  • App: localhost:3000

Generate OpenAPI client

MyFlickList's API conforms with the OpenAPI standard, which is leveraged for automatic client generation. Whenever you make a change in the API, you will need to generate a new client so that frontend and backend stay in sync.

Steps:

  • Ensure API project has been built
  • Change directory to /MyFlickList.App
  • Execute npm run generate-client

The generated client is placed in src/internal/api.generated.ts. Some editors may not load the type definitions immediately and you might need to open the file yourself to help.

myflicklist's People

Contributors

dependabot[bot] avatar tyrrrz 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.