Social cataloging app for movies and TV-shows
OTHER License
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.
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.
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:
docker-compose up --build
Individual containers should be exposed on the following ports:
localhost:5432
localhost:5000
localhost:3000
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:
docker-compose up mfl.db
(Terminal 1)/MyFlickList.Api
(Terminal 2)dotnet run
/MyFlickList.App
(Terminal 3)npm install
npm start
Individual containers should be exposed on the following ports:
localhost:5432
localhost:5000
localhost:3000
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:
/MyFlickList.App
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.