Forum: Ruby on Rails [ANN] Myowndb: a web database built with rails

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
71c85a662af0764df3a77cc00db166c9?d=identicon&s=25 Raphael Bauduin (Guest)
on 2006-04-04 23:05
(Received via mailing list)
Hi all,

I wanted to announce on this list that I have launched
http://myowndb.com which
is a web database built with Ruby on Rails.

The application lets the administrator users define the data structure
through
a web interface like in a normal database, with:
- tables
- enhanced datatypes like emaili, web URL, and a choice in list
- relations (one to many, one to one) between tables

Once the data structure has been defined, a web interface lets users
manage the
data in the sense that they can:
- enter new data
- update existing data
- delete obsolete records
- search the stored data
- link records of the different tables according the relation
definition, with
  enforcement of one to many or one to one relations.

Highlights of the applications are:
- ajax use to ease filtering of any list
- ajax use to link records: easily link to a new or existing record.
- search form built dynamically to display only fields available in the
  searched table.
- multi lingual: currently english and french are supported. It uses a
Rails
  plugin to be released soon. The whole application is translated, and
data
  structure will be translatable later on (table and field names will be
  translatable)
- data types are displayed accordingly: a web URL field will be
displayed as a
  link, an email field will be displayed as a mailto link, a choice in
list
  field will be displayed in a drop down list.
- data is password protected, but a public form can be made accessible.
An
  embeddediable version of the form will soon be made available. This
could be
  used for collecting visitors data on a website, as this form can be
included
  in a webpage with 2 lines of html.
- live ajax validation when applicable (eg, if an invalid email is
entered, the
  field is marked in red when the focus leaves this this field).
- drag and drop used to reorder fields of a table (order is used for
columns
  order in lists, and for filters drop downs, so the first field becomes
the
  default filter criteria for lists).
- integrated help (can be switched off)
- multi user

Much much more features are coming, and this announcement is only the
start of
the application. Future developments will be prioritised according to
user
requests.  Possible features (non exhaustive list):
- make databases public for reading, so you can share your data
instantly
- add field types like file attachments, pictures, etc
- enhance data validation
- develop search functionalities
- add advanced reporting
- publish APIs
- add database functions (MAX, MIN, AVERAGE, ...)


A demo account and several screencasts are available, check on
http://www.myowndb.com

Hoping you'll enjoy the application. Let me know what you think!

Thanks

Raph
573b9499030e1ccb867ef80f0ff1ac49?d=identicon&s=25 Justin Bailey (Guest)
on 2006-04-04 23:39
(Received via mailing list)
Impressive application. I like the idea of creating a database to manage
small amounts of data. Also the specialized data types is a great idea
(email, link, etc). After signing up I was able to create a Contacts
data
base with a Contacts table in about 5 minutes. Not too bad.

Some improvements I would suggest:

1) Too many clicks to create fields in a database. Woudl be nicer to
have
that all as one form.
2) Combination of AJAX adding fields & traditional postback can make for
some weird results. Example: Add two or three rows to a table, then
click
"view entity" on one of the tables. Click back button to go back.
Result:
original state of table is displayed and it looks like the table has
lost
your entries (using Firefox 1.5 btw)
3) Green help is pretty jarring. I would suggest finding a designer to
give
this a once over.
4) Finally, too "engineery". I'm not sure who your market is, but almost
no
one outside the programming community will understand parent-child
relationships, tables, databases, etc. I would find different terms that
are
less intimidating and more intuitive.

Great start - good luck with it!

Justin
804bfba7969f642f671ba1316c378af1?d=identicon&s=25 Scott Mathieson (Guest)
on 2006-04-04 23:45
(Received via mailing list)
signed up, looking good m8

couple of things:

if i create a table 'bookmarks' i get a link to 'Add a new bookmarks'
not 'Add
a new bookmark', you need to sort out the pluralization

i cannot edit the field type whilst creating the table - unless i'm
missing
something, haven't had a chance to check out the screencasts yet
2cf7af8ebb619eeb30178dd8855245b8?d=identicon&s=25 Jonathan (Guest)
on 2006-04-05 03:02
cool job,want to study the source..
71c85a662af0764df3a77cc00db166c9?d=identicon&s=25 Raphael Bauduin (Guest)
on 2006-04-05 10:15
(Received via mailing list)
On 4/4/06, Justin Bailey <jgbailey@gmail.com> wrote:
> some weird results. Example: Add two or three rows to a table, then click
> Great start - good luck with it!
>

Thanks Justin! I've taken note of your comments and will look at
integrating them further developments.

Raph
71c85a662af0764df3a77cc00db166c9?d=identicon&s=25 Raphael Bauduin (Guest)
on 2006-04-05 10:18
(Received via mailing list)
On 4/4/06, Scott Mathieson <scottjmathieson@gmail.com> wrote:
> signed up, looking good m8
>
> couple of things:
>
> if i create a table 'bookmarks' i get a link to 'Add a new bookmarks' not 'Add
> a new bookmark', you need to sort out the pluralization
>

Hehe, that's indeed a problem I want to correct. I want to use Rails'
inflections, but I need to have separate inflections for each
language, which wasnt straight forward. ( but I could already use the
default inflections for the english version, that's right)
If you look in the archive of the list you'll find 2 post from me about
this ;-)

If someone already did this, I'm interested.

Cheers

Raph
C29d9db03853958c4de5ee6b06edd39a?d=identicon&s=25 Nicolas Buet (Guest)
on 2006-04-05 13:38
(Received via mailing list)
Great application. Just for information, how long did it take you to
code
this first version?
Afe765ee2d37bd6ad7e55d6f5fd35f1e?d=identicon&s=25 Hernan Fernandez (Guest)
on 2006-04-05 22:08
(Received via mailing list)
Hi
I have a question, why do you implement by yourself the translation
instead of one of the libs already avail?
I'm starting to use Globalize and could be good have a second though.

thanks
Hernán
71c85a662af0764df3a77cc00db166c9?d=identicon&s=25 Raphael Bauduin (Guest)
on 2006-04-05 22:54
(Received via mailing list)
On 4/5/06, Nicolas Buet <nicolas.buet@gmail.com> wrote:
> Great application. Just for information, how long did it take you to code
> this first version?

Very hard to say the time I spent on it, as it began as an experiment
one year ago, and development has had its ups and downs. I have also
learnt Rails with this project (but I knew ruby).  I initially hoped
to launch the app in september, but then took a lot of time to ensure
I had a solid base before going public, every x weeks having an idea
of what I should add. (And organising FOSDEM didn't help either ;-)

But the structure is very flexible now, and to give you an idea,
adding the data type "web url" with its custom display as a html link,
to me exactly 15 minutes.

I'm sorry I can't give you precise answer as I haven't counted the
time spent on it....

Raph
71c85a662af0764df3a77cc00db166c9?d=identicon&s=25 Raphael Bauduin (Guest)
on 2006-04-05 23:28
(Received via mailing list)
On 4/5/06, Hernan Fernandez <hernanjx@gmail.com> wrote:
> Hi
> I have a question, why do you implement by yourself the translation
> instead of one of the libs already avail?

The first reason is that when I implemented my translation code,
globalize was not available (or I wasn't aware of it anyway, I
discovered it with David's post on the Rails Weblog IIRC).
But when I took a look at globalize, I didn't switch because:
- adapting my code would have taken a lot of time
- globalize does things I don't need ( I don't need translations at
the model level), but does it do all I need? (see features below )
-I wanted to be able to pass the language to translate to as a
parameter to the method
- I not only have the code to display translations, but I also have a
little app to manage the translations, with links to the pages where
the translation appears, so that translators easily can see where
their translation will be displayed, and with display of the
parameters passed to the translation.
- I needed to have different scopes for the translations, so that
users can translate their (eg) tables names without interfering with
the application's translations. So a funny user can't assign the
translation "no" to the word "yes" in the whole application.  ;-)
- I wanted to be able to put some html code the translations. I
imagine this can be seen as evil, but can be useful when used
cautiously (for example for the page at http://www.myowndb.com/info ,
all the "latest news" part, including the link, is the translation of
one term)


On the other hand, Globalize does have things I miss in my code, most
notably pluralisation rules.

I'll release the plugin as soon as I can, hoping it can help others.
(I haven't tried to use it outside of my app, so I can't promise it'll
be useful ;-)

Raph
29b15f133c26b6dac0e4954d61733db9?d=identicon&s=25 Larry Kelly (Guest)
on 2006-04-07 13:20
(Received via mailing list)
Looks cool!  I created an account and a couple of tables.  I have some
questions:


   1. Are id fields autogenerated, or must they be specified explicitly?
   2. I'm uncertain how to set a relationship between tables.  Are you
   asking for the linking field in the source table or the destination
table? A
   brief tutorial and/or a few examples would be helpful.
   3. Recieved a duplicate field name error when attempting to create
two
   tables with a column named 'name'.
   4.

-Larry
On 4/5/06, Raphael Bauduin <rblists@gmail.com> wrote:
> - adapting my code would have taken a lot of time
> users can translate their (eg) tables names without interfering with
> notably pluralisation rules.
> > Hernán
> > > On 4/5/06, Raphael Bauduin <rblists@gmail.com> wrote:
> > > >
> > > > If someone already did this, I'm interested.
> > > > >
> > > > > > through a web interface like in a normal database, with:
> > > > > > - delete obsolete records
> in
> > > > > > translatable)
> > > could
> > > > > > columns order in lists, and for filters drop downs, so the first
> > > to
> > > > > >
> > > > > > Rails@lists.rubyonrails.org
> > > >
> > Rails mailing list
> > Rails@lists.rubyonrails.org
> > http://lists.rubyonrails.org/mailman/listinfo/rails
> >
> _______________________________________________
> Rails mailing list
> Rails@lists.rubyonrails.org
> http://lists.rubyonrails.org/mailman/listinfo/rails
>



--
Best Regards,
-Larry
"Work, work, work...there is no satisfactory alternative."
            --- E.Taft Benson
71c85a662af0764df3a77cc00db166c9?d=identicon&s=25 Raphael Bauduin (Guest)
on 2006-04-07 13:44
(Received via mailing list)
On 4/7/06, Larry Kelly <larry@tellinkltd.com> wrote:
> Looks cool!  I created an account and a couple of tables.  I have some
> questions:
>
>
> Are id fields autogenerated, or must they be specified explicitly?

id fields are generated and used internally but not displayed.

> I'm uncertain how to set a relationship between tables.  Are you asking for
> the linking field in the source table or the destination table? A brief
> tutorial and/or a few examples would be helpful.

Could this link help? http://www.madb.net/info/presentation/demos
There's a demo about linking tables.
You indicate which table you link to, give a name to the relation in
both directions,  indicate the type of the relation (one-to-many,
one-to-one, many-to-many) and you're set. Internal ids are used to
link entries of the tables.

> Recieved a duplicate field name error when attempting to create two tables
> with a column named 'name'.

In the second table, add the filed with the button "Add field based on
existing detail" and use the detail "name". You then add a field with
the same characteristics to the second table.

A field in a table has its characteristics defined by a detail (which
has a name and a type). It is particularly interesting to reuse
details in the case of "choice in list" details as you don't have to
reenter all value propositions. Eg, you can define a detail named
"yes-no", and reuse it in multiple tables. A current limitation of the
implementation is that you can use a detail only once in a table, but
it is planned to correct this. The error you had is because you can't
create 2 details with the same name in one database.

As often, you'll see the usage of this is easier than to explain it :-)

Raph
29b15f133c26b6dac0e4954d61733db9?d=identicon&s=25 Larry Kelly (Guest)
on 2006-04-07 14:06
(Received via mailing list)
The demo helped, thanks.

So, I'm not specifyng the linking field. I just need to label the
relations.
MyOwnDb will  discover the linking column names and create the correct
linking code, for the specified relationship.  Pretty slick!
-Larry

On 4/7/06, Raphael Bauduin <rblists@gmail.com> wrote:
> > I'm uncertain how to set a relationship between tables.  Are you asking
>
> details in the case of "choice in list" details as you don't have to
> >
> > > discovered it with David's post on the Rails Weblog IIRC).
> > > parameters passed to the translation.
> > >
> though.
> > > > > this first version?
> > bookmarks'
> > > > > > default inflections for the english version, that's right)
> > > > > >
> > > > > > > > Hi all,
> list
> > > > > > > > - search the stored data
> available
> field
> > > > > > > > list field will be displayed in a drop down list.
> > > > > > > > - live ajax validation when applicable (eg, if an invalid
> > field
> > > > > > > > user requests.  Possible features (non exhaustive list):
> > > > > > > >
> > > > > > > > _______________________________________________
> > > > > > _______________________________________________
> > > > >
> > > http://lists.rubyonrails.org/mailman/listinfo/rails
> > Rails mailing list
> > Rails@lists.rubyonrails.org
> > http://lists.rubyonrails.org/mailman/listinfo/rails
> >
> >
> >
> _______________________________________________
> Rails mailing list
> Rails@lists.rubyonrails.org
> http://lists.rubyonrails.org/mailman/listinfo/rails
>



--
Best Regards,
-Larry
"Work, work, work...there is no satisfactory alternative."
            --- E.Taft Benson
5d15c6821f3c3054c04b85471824ba7c?d=identicon&s=25 Richard Williams (Guest)
on 2006-04-10 17:04
(Received via mailing list)
VERY nice!  I was looking for just such an application about a year ago.
 I found many "Data Form" type sites but none where you could actually
define tables and relate them together.

Good job!  I hope you have much success with it.
This topic is locked and can not be replied to.