Coder Social home page Coder Social logo

mcpackserver's People

Contributors

rionzagal avatar

Watchers

 avatar

mcpackserver's Issues

Add details pages for modules

Overview

In order to increase readability, a user may want to be able to see a details page for an entity that has connections in the database, such as Providers or Projects. The details page must contain the detailed information of the class or entity that is presented, as well as its corresponding entities conected to it.

Entities that seem to require a Details page:

  • Users and UserInformation
  • Projects
  • Clients
  • Providers

Find a way to add EF Core Power Tools implementations

Overview

Because the database is hosted in a MySQL schema, the project has no direct connection to implement EF Core Power Tools without breaking the solution. When the Reverse Engineer algorithm is used, the solution breaks because of a change on the namespace of the entities generated. A way must be found to use these functions using the MySQL schema without breaking the code.

Change the mapped table classes to views

Overview

The use of classes mapped using Dapper can be very useful and efficient for small objects in the database, but some of the objects have mapped information over mapped information, and this could be very inefficient and complicated for future references. In order to reduce the complexity of the modules and services, the mapped objects must be changed to views of the objects where necessary.

To Do

  • Generate views with names [tablename and information]View containing the relevant information about the necesary tables in the database, such as [tablename]Id and other necessary data.
  • Apply the generated views and correct the Services to take in the Entity and the View data and eliminate unnecessary services where Mapping occurs.
  • Apply the generated views to their corresponding app pages to simplify the information request and management.

Se necesita cambiar el formato de precios de cotización

Varios proveedores manejan la cotización de sus artículos con precios sin redondear y en formato de cuatro decimales, y la aplicación maneja únicamente los precios redondeados con formato de dos decimales. Hay que cambiar esta característica, ya sea cambiando todo el formato del sistema directamente a cuatro decimales o agregando un módulo para configurar el formato de los precios de compra y de venta.

Standarize all dialog responses

Overview

Some of the action Dialogs present in the app have different types of response for their respective modules, and it can be confusing and complicated to mantain. A standard response format must be returned to the Module pages for each module from its respective dialog.

To Do

  • Check every action dialog in the app for the different modules.
  • Change the response format to return an ActionResponse<T> containing the required information.

Add SMTP server for mail functionality

For better functionality, the app must be able to address different users via e-mail, by a [email protected] address or a similar one. In order to activate this funcitons, a SMTP server must be enabled, using the company domain to create a communication device via e-mail for the users.

TO DO:

  • Apply a SMTP server to the app builder in the program.cs file.
  • Store the SMTP server data in appsettings.json file for reference.
  • Generate a module to send e-mail using the app It depends on the admin's function lists

project materials and cost report module

The client needs a module for generating and reviewing the materials purchased for the projects and purchase orders existent in the app. The client needs to see the following information:

  • The project number
  • Wether the project has been finished or not
  • The client Market Name
  • Information about the purchase orders generated for the project:
    - Purchase order number
    - Provider
    - The list of materials concerning the order and its cost
    - The date of arrival of each material

A view can be generated in the Database for this task, because the list of materials concerning each project may be composed by various purchase orders containing each its own list.

Edit:
The client also wants this module to be visible to the purchase department of the company. The members of this department are not supposed to perform changes into the selected project. The information present in this page will be merely for consultation reasons to them.

TO DO:

  • Generate a new page rendering the desired report (it may be with a link button from Projects page or have its own link in NavMenu)
  • Generate query functionality to the report page in order to enhance the user experience in the page.
  • Implement the print function to the page in order to generate a PDF file for the report.

Add operators functionality to services

Overview

For now, the only operator available in the service queries is LIKE, which returns true when the field contains the parameter value, but it does not specify anything more than that. In order to enhance the filtering functions in the app, different opperators must be added to the service functionality, such as Starts With, equal, greater than, ect... These should also enable filtering for datatypes such as Datetime, int, float, etc...

TO DO:

  • Update the WhereFilter model so it has an Operator property, which contains the proper operator text
  • Update all of the queries generated in the Services folder in order to accept the desired operators for each query
  • Implement the operator upgrade to the filtering fields in the module MudTables

Add event handling for live function

Overview

Many things can happen when more than one person are working in the same app simultaneously. There is a chance that two or more people can operate in the same module and add redundant entries, modify or delete derived entries that are dependencies of any other. So in order to prevent this from happenning, an event handler must be added to keep record of any changes in the database, even if those changes are performed in a different computer.

To Do

  • Add the event handler to the concerning services and methods.
  • Add a way to invoke that event from the concerning pages without reloading at non-concerning event modules.

Create a User Manual for app

Overview

Currently, the app is deployed in the company server and already functioning. A little bit of training has been given to some of the users, but it may not be enough for them to learn completely how to use the app to its full extent. Also, for each module that would be added to the app, new documentation is required in order to help the user know what is the module for, and how to use it correctly. For this reason, a User Manual is required in order to add all the missing documentation and update it along with the app for future references. This could also help new developers who enter the project understand how the app should be used and the scope of each module.

TO DO:

  • Generate the appropiate documentation file for each module, containing its correct usage and reading.
  • Find a way to display the documentation separately for each module, so the users cannot access the module documentation where they have no permissions.
  • Find a way to generate and download a PDF document with the documentation where the user who generated it has access to.
  • Add a separate documentation file for Development, in which the subsequent developers can find the development style and standards of the project, as well as modifying and adding new information depending on their actions.

Add Logs and history modules

Overview

In order to detect different errors occuring in the published app, and the activity of the users within the app, new modules are needed, which show the actions performed by the users and their results. In this case, two modules must be generated, mainly because of the different behaviors and access between the two of them.

  • Create the Logs table in the database containing the necessary fields mentioned in the Logs Module section.
  • Generate the Logs Service to add new logs with the specified information.
  • Generate a locked page in where the Logs information can be read only by Developers.
  • #15

The Logs Module

For development purposes, the Logs module must be implemented, as well as a database table in which the relevant information is stored.

The information stored in the Logs table must be:

  • The action performed
  • The user who performed the action
  • The module in which the action is performed
  • The time the action was performed
  • Wether the action was a success or a failure
  • The resulting message of the action (If the action resulted in an exception, the message of the given exception)
  • If the action resulted in an exception, the complete exception message

Only the Developer role can see the module, due to the error messages and sensitive information.

The History Module

For data visualization reasons, a history module must be presented, which presents a simplified version of the actions performed by any user at any given time.

This module must present the given information:

  • The action performed
  • The user who performed the action
  • The module in which the action is performed
  • The time the action was performed

Standarize Form components

Overview

In the Form Dialogs to Add and Edit the selected entities, there are many different types of components, and each component has different types of validations. For terms of simplicity, is necessary to add a new type of component to contain the different type of form inputs and get its different validations.

TO DO

  • Generate a new component or group of components to contain the different validations necessary for each attribute.
  • Find a way to programmatically obtain the annotations contained in each data model from the database to add a length validation.
  • Find a way to enclose the user to use only ASCII characters with UPPERCASE words.

Generate a view in the database to extract the relevant History information described in the History Module section.

#Overview
Now that the issue #8 is done and its basic configuration is set, it is necessary to create a History Module based on the Logs Module. This module must provide the necessary information to the user about the actions performed in the general app, for management and accountability reasons. The module must provide only the necessary information to any user who has the right permission to enter and view the module.
The information presented to the user in this module must be as follows (only if the Log was a success):

  • The action performed
  • The table affected
  • The user who performed the action (preferably Id and UserName)
  • The time the action was performed

To Do

  • Create a HistoryView entity in the database to take information listed above to the user.
  • Create a HistoryPage with Only Reading actions with a permission component view.
  • Add a database permission object to enter and read the information of the History Page.

Correct those warnings!

Overview

When the app is built, a great number of warnings at compilation time are triggered! For good practice, all of those warnings must be dealt with or supressed, depending on their severity and nature. This will help mantain and enhance the code!

Enhance the Security management modules

Overview

The security modules are somewhat difficult to read if you are a normal user, and it makes the modules error-prone in the long run. So, the modules must be re-designed in order to make them easy to read and more secure to the users who use them.

Change Query builder in tables

Al momento en el que los usuarios buscan algo en las tablas solamente pueden buscar bajo el operador StartsWith, y les causa problemas porque quieren buscar desde palabras clave que estén a la mitad del criterio de búsqueda. Hay que cambiar los operadores de las tablas de StartsWith a Contains en los criterios de búsqueda en lo que se genera la forma de crear un menú para cambiar los criterios de búsqueda.

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.