Skip to content

Challenge: Download user favorites (and create recommendations) #2

@DonaldTsang

Description

@DonaldTsang
  1. Given a user account, or a user's collection, download all of the images within the favorites/collection
    • For user favorites https://www.deviantart.com/<user>/favourites/
    • For user collections https://www.deviantart.com/<user>/favourites/<collectionID>
    • create an API that output a JSON list of favorites URLs, along with artist name/ID based on these two types, along with a marker that states which favorite/collection it is from
  2. All images downloaded should have retained its metadata, including:
    • Name of the piece and tags (ease of search)
    • Description (good for finding collaborations and descriptions)
    • Artist name/ID (will be important for point no.3)
    • The metadata as a JSON file should be stored in pairs along side the image
    • The artist/name ID should be easily accessible through the filename or some other means
  3. Given a user account, or a set of multiple user accounts, recommend a list of artists based on one of these criteria:
    • quantity based (the user(s) favs/collection contains more than X amount of art from artist Y)
    • percentage based (the user(s) favs/collections contains more than X% of art from artist Y)
    • Other strategy that is applicable
    • create an API that outputs a JSON list of recommended artists based on the data, along with a marker listing the input of user or list of users
  4. Given a user account, or a set of multiple user accounts, find as many artist as possible, and draw a network diagram of user favorites
    • there will be two variables, X and N (X in point no.3, N for depth)
    • the system will find all artists that is N artists "away" from the main search group
    • e.g. if A like artist B, B like artist C, then B is 1-away, C is 2-away
    • (extra credit) Use Matplotlib + NetworkX to achieve the result
    • (extra credit) cluster different artists in the network into sub-groups
    • create an API that outputs a list of all nodes (users/artists/collections containing list of all art pieces) and connections (favorites, which has an artist, a faver, and a list of art pieces that is being liked)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions