kuzjka / kum-archaeodb Goto Github PK
View Code? Open in Web Editor NEWGeospatial Archaelogical Database
License: MIT License
Geospatial Archaelogical Database
License: MIT License
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 a select control to switch between period and comma as a decimal fraction separator.
Update REST request specification, implement in backend.
Add sorting and filtering for the items list.
Preferable controls:
@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 :)
Add error handling to ItemService, show warning snacks for failed requests.
The task is better to be done after REST API spec update (#7)
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
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.
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.
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:
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))
Category names should be unique. It is currently achieved by a DB constraint.
If a duplicate category is added, exception occurs in JPA layer and HTTP 500 is returned.
HTTP 400 for a request with invalid category name, interactive validation in UI.
In items import workflow - return actual count of added items obtained from the backend.
See ItemListComponent#save() for related UI notification.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.