Giter VIP home page Giter VIP logo

redditube's People

Contributors

ahmedmoalla avatar

Stargazers

 avatar

Watchers

 avatar

redditube's Issues

Liquibase migrations per service

Each service should have its own liquibase migrations instead of a project grouping all migrations
Actions:

  • Remove liquibase-migrations project
  • Do necessary refactoring for all migrations to work as it was

Make the project independent from Dex

We need to be able to switch authentication providers without modifying the whole code.
We need to make the code as generic as possible and just switch implementation if possible.

Code to modify:
DexUserIdPrincipalJwtAuthenticationConverter#getUserIdPrincipal
DexService should implement an interface which we'll use instead of using this service directly

Add Swagger to all controllers via commons library

We will use OpenAPI Specification.
use this https://springdoc.org/#demos
Video presentation of the library: https://www.youtube.com/watch?v=utRxyPfFlDw&feature=youtu.be&ab_channel=SpringI%2FO
Result example: http://158.101.164.60:8081/swagger-ui/index.html?configUrl=%2Fv3%2Fapi-docs%2Fswagger-config&urls.primaryName=users

The result we are looking for is like the example. We need a list of definitions, one for each service.
The use of OpenAPI Specification will let us generate clients for our services.
Example of usage in intellij: https://www.jetbrains.com/help/idea/openapi.html?gclid=CjwKCAiAqJn9BRB0EiwAJ1Sztf4Ujj7rrbPPQJ0bbYbrD7nOaMKbCJ_PCP0ErJ_1_Qhd5QGGOk7FOhoC4YkQAvD_BwE

Access to swagger-ui should be exposed on the gateway

Implement mediaposts service

  • Subscription

    • Subscribe/Unsubscribe from a user or subreddit
    • Get a feed of posts of the users/subreddits a user is subscribed to
  • Organize

    • Create folders/collections of images by theme or whatever
    • Can download the folder structure zipped
    • Star a post

Dockerize Dex

Need to dockerize Dex to avoid cloning and building the project.
Dex need a database to start. Use docker compose to start both of them and make sure that Dex has access to Postgres

Store MediaPosts in MinIO and Postgres

Listen to NewMediaPostsAvailableEvents and store the received mediaposts as follows:

  • Images, GIFs, videos stored in MinIO
  • Other data is stored in Postgres

Add error handling mechanism for all services

  • Have a centralized system to regroup error events on a dashboard
  • This will help us in detecting errors and implement fixes to recover

Tasks:

  • Implement error handling in MediaPostsScraperTask to recover from failed FetchMediaPostsSubTask
  • Use Spring ApplicationEventPublisher to publish error events

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.