Skip to content

ducksmanager/core

Repository files navigation

DucksManager

Official website

DucksManager is a free and open-source website enabling comic book collectors to manage their Disney collection.

Apps :

  • Web is the DucksManager website. It calls the backend that's stored in packages/api. Note that the version of web that's currently running on ducksmanager.net is the one stored in the legacy branch. Eventually the master branch will be used.
  • What The Duck is the mobile app of DucksManager, allowing users to check the contents of their collection on a mobile and add issues to the collection by photographing comic book covers. It calls the backend that's stored in packages/api.
  • EdgeCreator is a project allowing users to upload photos of edges and create models out of them in order to generate edge pictures.
  • Duck cover ID is a collection of shell scripts launched by a daily cronjob, allowing to retrieve comic book covers from the Inducks website and add the features of these pictures to a Pastec index. This index is searched whn taking a picture of a cover in the WhatTheDuck app.
  • COA updater is a shell script launched by a daily cronjob, allowing to retrieve the structure and the contents of the Inducks database and to create a copy of this database locally.
  • DucksManager-stats contains a list of scripts launched by a daily cronjob, allowing to calculate statistics about issues that are recommended to users on DucksManager, depending on the authors that they prefer.
flowchart LR
    subgraph Inducks
        ISV_files("ISV files")
        Inducks_covers[Inducks covers]
    end
    subgraph DB
        DBServer("DB server")
        DBServer --> db_dm("DM DB")
        DBServer --> db_coa("COA DB")
        DBServer --> db_dm_stats("DM stats DB")
        DBServer --> db_cover_id("Cover info DB")
        DBServer --> db_edgecreator("EdgeCreator DB")
        SpriteNamesUpdater(sprite names updater procedure) --> db_edgecreator
    end
    LegacyAPI[Legacy API] --> DBServer
    subgraph API
        SocketIOServer(socket.io server) --> DBServer
        NotificationSenderScript(Send notifications script) --> db_coa
        NotificationSenderScript --> db_dm
        PendingEmailsSenderScript(Send pending emails script) --> db_dm
        CreateIssuesFromSubscriptionsScript(Create issues from subscriptions script) --> db_dm
    end
    subgraph coa-updater
        CoaUpdaterEntrypoint(entrypoint)-->ISV_files
        CoaUpdaterEntrypoint(entrypoint)-->db_coa
    end
    subgraph EdgeCreator
        EdgeCreatorEntrypoint(entrypoint)-->ISV_files
        EdgeCreatorEntrypoint --> EdgeCreatorAPI(API)-->db_edgecreator
        EdgeCreatorAPI(API)-->SocketIOServer
    end
    subgraph stats-updater
        StatsUpdaterEntrypoint(entrypoint)-->db_coa
        StatsUpdaterEntrypoint(entrypoint)-->db_dm
        StatsUpdaterEntrypoint(entrypoint)-->db_dm_stats
    end
    subgraph cover-updater
        CoverUpdaterEntrypoint(entrypoint)-->db_coa
        CoverUpdaterEntrypoint(entrypoint)-->db_cover_id
        CoverUpdaterEntrypoint(entrypoint)-->Inducks_covers
    end
    subgraph duck-estimator
        DuckEstimatorEntrypoint(entrypoint)-->db_coa
    end
    subgraph backup
        BackupEntrypoint(entrypoint)-->DBServer
    end
    subgraph "What The Duck"
        App --> SocketIOServer
    end
    subgraph "Web"
        Website-->SocketIOServer
    end
    subgraph "Web (legacy)"
        WebsiteLegacy(Website)-->LegacyAPI
    end
    ducksmanager.net --> WebsiteLegacy
    ducksmanager.net -.-> Website
    subgraph "GH Actions"
        notification-sender.yml --> NotificationSenderScript
        pending-emails-sender.yml --> PendingEmailsSenderScript
        daily.yml --> CoaUpdaterEntrypoint
        daily.yml --> StatsUpdaterEntrypoint
        daily.yml --> CoverUpdaterEntrypoint
        daily.yml --> DuckEstimatorEntrypoint
        daily.yml --> SpriteNamesUpdater
        daily.yml --> CreateIssuesFromSubscriptionsScript
        daily.yml --> BackupEntrypoint
    end
Loading

Setup

Prerequisites