Giter VIP home page Giter VIP logo

xipona's Issues

Change specifying default section of a store in DB

With the current circular reference between store and sections, it is impossible for EF Core to insert a new store and new sections.
Change the DB design as following:

  • Remove the DefaultSectionId column in table Stores
  • Add column IsDefaultSection in table Sections

Write missing unit tests

Some (actually a lot) of the command handlers, query handlers, services, etc. don't have unit tests. Write them.

Multiple new store sections can't be distinguished

If you add multiple new sections to a store (no matter if you create a new or edit an existing one), the dropdown for the default section and the backend can't distinguish between them because they all have the same ID '0'.

Ensure DDD

An aggregate root shouldn't contain entities that don't belong to it but only their IDs as reference. Thus, all domain models must be adapted to this constraint
Also:

  • Make Sub-models read-only

Create READMEs for important folders

To explain the project's folder structure better, every important (sub) folder should have its own README explaining what's going on in there.

Display ongoing retry

Display something to indicate that there's an ongoing retry in the background and not all changes are saved.

Summary before finishing shopping list

When clicking on the "Finish list" button, a summary should show up that shows:

  • completion date
  • total price

It should then have a "Cancel" and "Finish" button to cancel or confirm the action.

Replace extension methods with converters

Replace extension methods that convert domain objects, entities, read models, contracts into each other with dedicated converter classes. This'll also enable a global usage of factories for creating domain models.

Research VPN container

The plan is to be able to connect to the docker container that runs ProtonVPN, so that all devices (inside the network [+ from outside(?) ]) can connect to the container and have its traffic channeled through the VPN to ensure privacy.

Item sections

Item sections allow users to group items into logical parts (e.g. like sections of the supermarket) to easily access items that are next to each other.

Dockerfiles

Add Dockerfiles for building backend and frontend images.

Implement convenient way to switch between DBs when applying migrations

Currently, all connection strings to DBs are hard coded in every ContextFactory. This should just be done in the AppSettings and depending on a system variable, the corresponding DB should be updated.
There is also an update script in Api/Scripts that should be split in two scripts: update-dev and update-prd system

Exception when creating new store

When creating a new store via the frontend, an exception occurs while accessing the store's sections (for displaying the default section) because there are no sections yet.

Implement ItemTypes

Different ItemTypes should represent the same kind of product from the same manufacturer but with difference in e.g. flavor or size.

ShoppingListConverter expects an item in every section

The ShoppingListConverter expects that every section contains at least one item when it tries to do
var items = itemMapsPerSection[section.Id].Select(map => CreateItem(map, source));

This must be changed to be also able to convert sections that contain no items.

Distinguish between api response codes

When the api requests throws an exception, distinguish between connection errors and 400, 500, etc.
If it's no connection error, don't retry to execute the request.

Reorganize solution

Reorganize solution by

  • introducing a ranked sub-folder for every layer
  • splitting Infrastructure projects into sub-domains
  • review whether the Transaction folder belongs to Infrastructure or ApplicationServices
  • rename test folders to reflect layer rank
  • move all fixtures into the corresponding TestKit project

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.