Find Jobs
Hire Freelancers

Database admin web app(repost)(repost)

$100-500 USD

Cancelado
Publicado hace casi 12 años

$100-500 USD

Pagado a la entrega
I need database administration web application (CRUD like), similar to phpMyAdmin, but managed tables and operations allowed on this tables will be configured in XML configuration file. Webapp design is not relevant, important is functionality and usability. Project deadlines can be extended if needed. **Please read requirements details, before bidding.** ## Deliverables Whole webapp behaviour will be configurable via XML, that will specify what and how will be managed, what operations will be allowed etc. This config file structure also implies how will app GUI work and interract. ## Config file DbAdmin will be configured using XML config file, that specifies which views, details tables and fields should it display and make available for administration. DbAdmin provides possibility to enable basic table auto-configuration, if underlying database driver has such a feature available. ### Database config Configures available database, and view that belong to this database. Specifies: * Database name * Database connection string * list of views (see View config) * flag: transaction available ### View config Configures tables that will be available for viewing (main table). Specifies: * table name (unique) * description * db table to be used - table/query * mapped fields (see Field config) * list of detail table(s) and key field for given table (see Table config) * list of related views * list of possible operations (see Operation config) ### Table config Configures detail tables that will be displayed along with main table in view, depending on primary key selected in main view. Specifies: * table name * description * table and filter field, that will be filtered by view key, or SQL query with binding field. * mapped fields (see Field config) ### Field config Configures which fields and how should be displayed for given view/table. Specifies: * display name (table unique) * type * flag: is key * flag: is read only * constraints for editing (regex, list of values, SQL query to obtain list of values) ### Operation config Along with built-in operations on given view data, it should be possible to configure advanced operations expressed as SQL queries, that can ie. move data from one table to another. Specifies: * operation name * key field(s) on which operation will be performed * SQL query to be executed * flag: row refresh needed * flag: table refresh needed * flag: disable transaction Example operation: <span class="CodeRay"><span class="no">1</span> <span class="r">INSERT</span> <span class="r">INTO</span> table_destination (fkey, attrib1, attrib2) <span class="no">2</span> <span class="r">SELECT</span> <span class="r">key</span>, attrib1, attrib2 <span class="r">FROM</span> table_source <span class="r">WHERE</span> key2 = %<span class="r">KEY</span>%; </span> KEY is here a program recognized variable, that will be replaced with its real value in runtime, before executing the query. Possibility to redefine built-in (CRUD, SEARCH) operations should exists. ### Example config <span class="CodeRay"><span class="no"><config><br /> <databases><br /> <database name="DevDB" dsn="Pg:dbname=dev-db1"><br /> <view>view1</view><br /> <view>view2</view><br /> </database><br /> </databases><br /> <views><br /> <view name="view1"><br /> <desc>Showing some data from table_t1</desc><br /> <table>table_t1</table><br /> <fields><br /> <field name="ID" is_key="1" type="int" ro="1"><br /> <value>123</value><br /> <value>234</value><br /> <regex>^XXX$</value><br /> </field><br /> <field name="Attrib1" type="bool"/><br /> </fields><br /> <!-- related views --><br /> <related>view2</related><br /> <!-- detail tables --><br /> <detail>det1</detail><br /> <detail>det2</detail><br /> <!-- operations --><br /> <deny>DELETE</deny><br /> <allow>MOVE_v1_v2</allow><br /> <allow replace="UPDATE">UPDATE_v1</allow><br /> </view><br /> </views><br /> <details><br /> <detail name="det1"><br /> <table>table_det1</table><br /> <query>SELECT d.* FROM table_det1 d JOIN %MAIN_TABLE% v ON ([login to view URL] = [login to view URL]) WHERE [login to view URL] = %ID%<br /> ORDER BY %ORDER_COLNUM% %ORDER_ASCDESC% LIMIT %LIMIT% OFFSET %OFFSET%;</query><br /> <fields>...</fields><br /> <deny>UPDATE</deny><br /> <detail><br /> ...<br /> </detail><br /> <operations><br /> <operation name="UPDATE_v1" refresh="row,table" transaction="0"><br /> <!-- dummy example of historizing updates --><br /> <table>%TABLE%</table><br /> <query>INSERT %TABLE%_hist (field, value)<br /> SELECT '%FIELD%', %FIELD% FROM %TABLE% WHERE id = %ID%;<br /> UPDATE %TABLE% SET %FIELD% = %VALUE% WHERE id = %ID%;</query><br /> </operation><br /> ...<br /> </operations><br /></config><br /></span><br /></span> ## Database Requirements: * database abstraction layer is required (existing) * in database paging should be preferred (using LIMIT/OFFSET clauses) ## Built-in operations Built-in operations that are provided by system: * CRUD (Create, Read, Update, Delete) * SEARCH * SORT Additional built-in operations might be provided using loadable modules. ## GUI Requirements: * XHTML (via XSLT or other templating mechanism) * javascript used for input checking (simple list of values/regex checking) * javascript used for updating detail tables on view row-change * config file implies how gui, works ### Layout Layout is simple, copying layout of phpMyAdmin and similar apps. * Left-upper-corner database dropdown menu * Left navigation tree, displaying all available views, where each view has a subtree of related view. * Remainder of a page will display main table of view data, with per row operations (text/icons) * Under main table, detail table with data from detail table related to actually selected row in main view will be shown. If multiple detail tables defined it should be possible to select actual detail table using tabs or drop down menu. Row operations should be possible on rows of detail table. * Paging, Filtering and Sorting should be possible on both main and detail view tables. ## Implementation * Use existing libraries/solutions if possible (consult licensing issues before use) * Clean modular architecture, allowing further development * Please write 'Hello DOB', into your bid to let me identify that you have took at least quick look on this spec ;) * Well documented code, following common coding guidelines This should be complete, but initial-only spec. No other functionality should be added during development, changes are expected only if they make implementation simpler, improve architecture or design. Access to live applications testing site is expected, to allow further development coordination. Project development will continue if it proves to be usable. == Bid must specify which primary programming language and frameworks are assumed to be used, without it bid will be immediately refused. If you have already worked on similar application that might be modified/reused for needs of this project, please include notice and link to demo site/screenshots or anything else, to let me consider it, when deciding project assignment.
ID del proyecto: 2728355

Información sobre el proyecto

5 propuestas
Proyecto remoto
Activo hace 12 años

¿Buscas ganar dinero?

Beneficios de presentar ofertas en Freelancer

Fija tu plazo y presupuesto
Cobra por tu trabajo
Describe tu propuesta
Es gratis registrarse y presentar ofertas en los trabajos
5 freelancers están ofertando un promedio de $547 USD por este trabajo
Avatar del usuario
See private message.
$800,70 USD en 66 días
4,8 (7 comentarios)
4,7
4,7
Avatar del usuario
See private message.
$180,20 USD en 66 días
5,0 (13 comentarios)
3,7
3,7
Avatar del usuario
See private message.
$450,50 USD en 66 días
5,0 (3 comentarios)
2,4
2,4
Avatar del usuario
See private message.
$300,05 USD en 66 días
0,0 (0 comentarios)
0,0
0,0
Avatar del usuario
See private message.
$1.003 USD en 66 días
0,0 (0 comentarios)
0,0
0,0

Sobre este cliente

Bandera de SLOVAKIA
Slovakia
0,0
0
Miembro desde oct 9, 2006

Verificación del cliente

¡Gracias! Te hemos enviado un enlace para reclamar tu crédito gratuito.
Algo salió mal al enviar tu correo electrónico. Por favor, intenta de nuevo.
Usuarios registrados Total de empleos publicados
Freelancer ® is a registered Trademark of Freelancer Technology Pty Limited (ACN 142 189 759)
Copyright © 2024 Freelancer Technology Pty Limited (ACN 142 189 759)
Cargando visualización previa
Permiso concedido para Geolocalización.
Tu sesión de acceso ha expirado y has sido desconectado. Por favor, inica sesión nuevamente.