GithubHelp home page GithubHelp logo

kuzjka / kum-archaeodb Goto Github PK

View Code? Open in Web Editor NEW
0.0 0.0 0.0 442 KB

Geospatial Archaelogical Database

License: MIT License

Java 64.38% JavaScript 1.42% HTML 9.65% TypeScript 22.81% CSS 0.58% Dockerfile 1.17%

kum-archaeodb's People

Contributors

anton31 avatar kuzjka avatar

Watchers

 avatar  avatar

kum-archaeodb's Issues

add separator/decimal format heuristics in UI

After the CSV contents are pasted/loaded in the text field, we can use heuristics to guess column separator char and decimal separator char.

So after the text is loaded we can set separator selectors to the guessed values, still leaving user a chance to correct those, if the guess was not successful.

Should be done after #8

Add sorting and filtering for items

Add sorting and filtering for the items list.

Preferable controls:

  • sorting - MatSort tools for tables in Angular Material
  • filtering - Chips or a multi-select drop-down like here

@Anton31
I would be happy to design UI here, so we can split this task once we agree the REST API for this request. But if you are hungry for Angular development, I will concede :)

exporting selection of items

Export to CSV is currently supported to all items, all bullets or a subset of items defined by category filters.

As suggested in #12 , we need to add checkboxes to select any subset of items or all items within a page. Checkboxes should be placed in the leftmost column of the items table.

Export menu will be transformed into two-level hirearchy (rendered as nested menus):

Export items

  • Export items
    • All items (filtered)
    • Selected items -- available only if some items are selected
  • Export bullets
    • All bullets
    • Selected bullets -- available only if some bullets are selected

Implemet REST API for categories

Please, implement following endpoints in backend (web and service layers):

Refer to REST API spec.

Some edits may be needed to persistence layer as well (e.g. ID should be returned when adding new category, some methods may be added to repository objects etc.)

โ— Please, start the development in a new branch, created at current master position. We will adopt code review practice for this project. Feel free to contact me for help with Git.

add authentication/authorization

Access to all of the data should be restricted to authorized users only.

Auth workflow is to be based on OAuth2/OpenID specification.

Authorization server should be added to the backend, there is a recent Spring framework for this. Security chains should be set up properly to restrict anonymous access to the data. All existing MVC and integration tests should be updated to work with Spring Security.

In the UI side, an existing solution may be used for OAuth2, however Angular docs should be checked at first. Guards are to be added to hide restricted area navigation for unauthorized user.

add CSV export for items

The first goal of the service, beside convenient storing of the items data, is to provide data for ArcGIS mapping, to create maps and plots for the field research report.

After we are able to filter items by categories (#11), we need to implement export function.
Data format is CSV, scheme is to be discussed. Obviously it should contain item names, point numbers, coordinates, categories and bullet-specific properties.

Exported file should include all items shown in the item list, taking filtering into account.
In future we can also provide:

  • export current page only
  • export selected items only (selection checkboxes should be added)

write spec for current REST API

The implementation went ahead of current API document :)

However, it's always good to have a reference doc on hand, to avoid searching for methods in the source of controllers to guess input/output data format.

Special attention should be paid to error response codes in different cases.
One of the cases is item parsing, when input data contains categories which do not exist (see #6 (comment))

Add category name validation

Category names should be unique. It is currently achieved by a DB constraint.

Current behavior

If a duplicate category is added, exception occurs in JPA layer and HTTP 500 is returned.

Expected behavior

HTTP 400 for a request with invalid category name, interactive validation in UI.

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.