A general-purpose table for tracking data of various kinds.
Headings, # rows and columns, and contents of cells are all user-customizable.
Two modes: general, for all to view; page will refresh automatically every 60 seconds.
Edit mode: via password. Use Edit mode to create tables or modify content on existing tables.
Can be more than one table per page.
Deleted rows will be saved in a "deleted rows" table
The intent is for this to run on a local network, with no access to the Internet (for data security purposes).
It will run under Node-Webkit which will permit local storage for the table specs and content
(and allow for easy installation -- download the file and run-- important as we will be distributing this to unsophisticated users).
(but, see note below -- if you wish to work on the project but are not familiar with Node-Webkit,
that's ok as long as you are clear about the data structures so I can convert it to run on Node-Webkit).
Heading 1 Heading 2 Heading 3 …
1
2
3
4
…
Functions in edit mode
-Create table, with ability to specify
-# columns (the first column numbers the entries from 1,2,3…)
-width of each column (as a percentage of the total width of the table)
-specify content type of cell:
-freetext
-date
-calculated value:
number of days since [a specified date]
number of days until [a specified date]
-from one of a set of user-selectable entries (e.g. from a list of names, or departments)
Functions on an existing table (only in edit mode)
-add a new row, and enter content for each cell
-edit content of a cell
-delete the row
-user must enter reason for deletion.
-the deleted row, including reason for deletion, is to be saved and deleted rows displayed on demand in a separate table
-move the row to a specified position (e.g. move row to #1 position, bumping the other rows down one position)
-select color for the row
Filter function (for all users)
-displaying only rows which match a case-insensitive text string or date or numeric value (for numeric fields)
May need "lockout" function so only one user can edit the page at a time.
Other
Leave space before and after the table for addition of notes to user and general announcements.
Full documentation so I can modify the source code at a later date.
I will write down what I understood from the description. Please correct me if I am wrong.
- A table needs to be created which users can use.
- This should be editable and customizable.
- Edit mode will be password protected.
- Properties of table will be configurable (width, type, fields, etc)
- Table shohuld have certain properties like - drag and drop row, color, delete etc.
- Filter functionality on a column
- Easily installable.
This looks like excel kind of functionality with certain customization and restrictions. This can be done as follows:
1. Setup a backend (I would prefere in node + mongo)
2. Create a javascript library to add table functionality.
3. Establish communication between web page and server over REST API exposed via Node JS.
I have questions:
- Since the edit mode is password protected, will there be User Management built into the solution?
- If you are building User Management, you will also restrict the access level based on user role?
- I understand that public access is not desired but local access within the LAN / intranet is allowed?