Giter Site home page Giter Site logo

marinasundstrom / item-catalog Goto Github PK

View Code? Open in Web Editor NEW
49.0 4.0 12.0 9.75 MB

App for cataloging items with pictures

C# 69.42% HTML 16.49% CSS 6.90% Shell 0.21% SCSS 0.07% JavaScript 0.38% Less 6.52%
dotnet maui blazor webapi azure-blob-storage sql-server tye fullstack distributed-application clean-architecture

item-catalog's Issues

Integration event

Make a Domain Event trigger and Integration Event.

Add Notification Handler that handles Domain Event and publishes an Integration Event.
Let the Worker listen to that Integration Event and Do something - Send a Command that makes Application update something.

Clean Architecture

Restructure folder structure in each Server project to adhere to Clean Architecture and DDD, and move files to the correct folders to facilitate discoverability within the structure.

Does not work on mobile

The apps now constructs URLs for the service clients from NavigationManager.BaseUrl. This works fine when running in a browser, but not for other mobile apps.

When running in a mobile app the URLs have to be hard-coded to a specific endpoint.

Integrate code from side-project

I have created a project in which merge this project and the TimeReport project.

Relevant changes should be integrated here.

Improvements with IdentityService.

  • API for creating Users
  • Integration events for telling other services that a User has been created, updated, or deleted.

Async Messaging

AppService should communicate with Notifications using Async Messaging, not RPC.

Create Web App

Make it possible to run this app in the browser.

Extract common Blazor components to separate Library project.

Create platform abstractions for services.

FIY: Changes integrated

Changes from side-projects have been integrated.

I copied projects and adapted them for this solution. Changing namespaces and such. As a consequence, some files might have been replaced, and Git has not detected them as being renamed.

One notable update:

Improved User handling. Admins can create Users.

On Api Keys

I realize that the use of Api Keys is not ideal. But now there is an ApiKey service that lets you define and validate API Keys - instead of hardcoded ones.

ApiKeys are primarily used to allow for automation, when seeding users (Seeder project)

What is lacking is a proper way to handle Api Keys auth with User Auth. Right now, there is (still) an "Api" user in each service. It does not tell anyone what identity did something in the Api.

ApiKeys need to be tied to a "Project".

Perhaps API keys are not the right way to go.

Other stuff to consider is handling access to certain resources.

Create
Regenerate
Revoke

Rename projects

In the AppService folder, remove the Catalog.* prefix from project folder and project file names.

In the WebAPI project, add Catalog.* to namespaces.

[Feature] Messenger

This document outlines the ambitions for the Messenger/Chat feature.

Conversation

Users are able to start start a conversation, in which the participants can:

  • Post message
  • Edit message - will update the text content of a message.
  • Delete message - will clear the message of its content.

Visibility

A conversation can be public or private.

Public means that it is visible to all.

Private means that it is between two or more participants.

Reactions

Attach an emoji to a message.

Replies

Reply to specific message.

User Permissions

A User can post, edit and delete their own conversations and messages.

Administrators are delete other Users' conversations and messages, but not edit them.

Fix Notifications and Search

The functionality is broken.

These services shall be treated as third-party services. They are not to be called directly.
AppService should provide an interface for that.

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.