Giter Club home page Giter Club logo

aya's People

Contributors

dependabot[bot] avatar fossabot avatar ovyerus avatar sr229 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

aya's Issues

Do not display SauceNAO results with rating lower than 85%

This is intended to maintain the quality of the matches. Our best match is 99% and our minimum match should be no lower than 85%. If nothing meets this critera, then just display "Source cannot be found!", I'll work on the design for that.

Public API

Of course we want to expose a part of what the site does. Frontend interacts directly to the services but third party integrations should use our public API with set limits. @Ovyerus will determine which is the best ratelimit for them.

Collections

The spec is as follows:

The Collections is a collection of Posts that is just contains the references to the Post. Aya should allow creating collections per user only, we can't allow it on guest accounts.

Flow is as follows for frontend:

  • Post is on a Collection?
    • Yes: Show in the frontend the name of the collection along with the other images in the collection.
    • No: its solo, and its sad.

IPFS Contract

IPFS Contracts are ran in Infura's side and will require project keys, hidden away from the user to regulate uploads. Frontend should handle the proxying to Infura and vice versa.

Ratelimits

This is a issue dedicated to discuss the ratelimit system before we tell the user they need to pay for the uploading.

Transaction fee equation

Since we're using blockchain-based billing and ratelimiting, The initial equation for the transactions are:

  • The Base Transaction Fee (this is the network and gas fee for the network from NEAR or ETH).
  • Commission rate (2.5%)
  • IPFS storage fee (5%)

This equation would allow us to give a insight for the next part: which is providing a good rate limit for people.

Quotas

Providing quotas is something we need to do to conserve resources and as a way to deny bad actors a way to circumvent the system.

Users are required to sign in via Reddit OAuth to upload to the site, and we will give them the following quotas:

  • 5 daily posting allowance and 35 weekly posting allowance.
  • Unlimited allowance for creating collections based on existing published art.

Our main focus here is the daily and weekly posting allowance. Since we're doing a rather freemium, PAYG-style service, we want to keep the price as sane as 0.000200ETH or similar.

I'm open for suggestions so if you got a better model for the quotas let me know.

Search

Search bar/button in navigation bar which redirects to full width search page - basically home/exploration but with search options tacked on.

Basic filtering and sorting based on simple metrics for MVP.

Fix issues with default imports

It seems the import checker for TypeScript is showing us errors despite being valid. I'll disable it for now and probably raise the issue to the author of the ESLint plugin.

User Upload

While we could allow guests to upload to the booru, we run on limited resources here so we might want to have User Authentication. Site admins can make uploading user-only or be available to guests in a very restricted manner.

  • Guest uploads (if enabled by admin) is limited to one image per IP.
  • User uploads are allowed to upload two images per account, otherwise, they can top up their existing limit.

SauceNAO integration

Should be explanatory, we can have it in the way RedditBooru does it. (which is by the upload dialogue).

Admin Dashboard

to complement #2 and #3, the first user is automatically the admin. We can also assign other admins if wanted via the dashboard and arbitrarily delete post(s) and user(s).

Advanced Search

Addition on top of #11 when we finish the MVP.

Search bar in the navbar shows a dropdown with available search "macros", similar to how Discord does, that correlate to various filters, for example character: would correspond to a character filter and only show that character.

These would probably get filtered out and display as the proper options on the search page? Or maybe filter options just get completely replaces and only exist as these macros.

Discord search dropdown

Images must not exceed 10MB on upload

Since we're moving to a new kind of IPFS pinning service, we're going to relax the initial ratelimits by just enforcing size limits to prevent abuse. Starting from now on we're going to limit the images to be 10MB or less, this is also to lessen the strain on the convert function (as one function only has 512MB memory in Vercel) and they would be even smaller on upload as we will convert them to WebP directly while maintaining their resolution.

Use IPFS directly

I think adding even more complexity to the stack that I introduced in #1 would make it unmaintainable and unusable. I figured out its possible to just use IPFS as-is, so we're getting rid of the Ethereum Backend.

Smart Duplication Detection

We can use a AI Service for this.

We train a model everytime a new image is uploaded, but its only scheduled per 2 hours to train from the entire collection or just what got uploaded new.

  • Post exists:
    • block/warn user.

Begin with Documentation

Right now, I've seen forks trying to change but they have no idea production branch isn't supposed to be committed at. Going to begin with preliminaries should help people be guided of what to do.

Design System

Our Design System will be based on Microsoft's Fluent Design. There's also consensus between us and @Ovyerus to use fast-dna, the same framework used to make Edge Chromium's UI.

fast-dna will be our de facto design system for the entire booru.

FAST-DNA Homepage

Character Recognition

Similar to #8. We can use an AI to train multiple models of anime characters we know and love. There are 4 different ways, for example, to draw Mash Kyrielight from Fate, from four different artists. We should be able to compensate for that. Once we know where the character came from, we can also output the franchise/series that they came from.

User Authentication

We have the option to use two of the following:

  • an dApps Auth using your Ethereum wallet as your credentials, preferrably MetaMask.

  • classic SSO by a third party.

This should allow us to implement permissions for #2.

User Page

This should show everything about the user. they can add a short bio (depends how you short you want it be) or whatever links they want to add and of course the posts and collections they have. Design will come soon.

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.