Find Jobs
Hire Freelancers

Database admin web app(repost)(repost)

$100-500 USD

Cancelado
Publicado há aproximadamente 12 anos

$100-500 USD

Pago na 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 do Projeto: 2728355

Sobre o projeto

5 propostas
Projeto remoto
Ativo há 12 anos

Quer ganhar algum dinheiro?

Benefícios de ofertar no Freelancer

Defina seu orçamento e seu prazo
Seja pago pelo seu trabalho
Descreva sua proposta
É grátis para se inscrever e fazer ofertas em trabalhos
5 freelancers estão ofertando em média $547 USD for esse trabalho
Avatar do Usuário
See private message.
$800,70 USD em 66 dias
4,8 (7 avaliações)
4,7
4,7
Avatar do Usuário
See private message.
$180,20 USD em 66 dias
5,0 (13 avaliações)
3,7
3,7
Avatar do Usuário
See private message.
$450,50 USD em 66 dias
5,0 (3 avaliações)
2,4
2,4
Avatar do Usuário
See private message.
$300,05 USD em 66 dias
0,0 (0 avaliações)
0,0
0,0
Avatar do Usuário
See private message.
$1.003 USD em 66 dias
0,0 (0 avaliações)
0,0
0,0

Sobre o cliente

Bandeira do(a) SLOVAKIA
Slovakia
0,0
0
Membro desde out. 9, 2006

Verificação do Cliente

Obrigado! Te enviamos um link por e-mail para que você possa reivindicar seu crédito gratuito.
Algo deu errado ao enviar seu e-mail. Por favor, tente novamente.
Usuários Registrados Total de Trabalhos 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)
Carregando pré-visualização
Permissão concedida para Geolocalização.
Sua sessão expirou e você foi desconectado. Por favor, faça login novamente.