DinoDate – a demonstration platform for Oracle Database

I’ve heard people talk about how “SQL databases are dinosaurs.”  I’m sure they don’t mean it as a compliment, but if you think about it, well, why wouldn’t it be?


Dinosaurs were the dominant terrestrial vertebrates for 135 million years.  It took a giant asteroid to stop them from ruling the earth forever (or for a few million more years, anyway).

Here at Oracle, we admire dinosaurs so much, we launched an expedition to see if we could find any.  And what do you know? We found a remote island that doesn’t appear on any maps….populated entirely with dinosaurs!

Who would have thought?

Instead of building an amusement park on the island, we decided to stealthily observe the dinosaurs, so we can better understand them. Here’s what we’ve learned so far:

  • Dinosaurs are busy: they spend a lot of time searching for food and trying to avoid becoming food.
  • Dinosaurs are very shy: that’s why they have gone undetected for so long.

Unfortunately, being busy and shy is a bad combination when it comes to finding a spouse and propagating the species. So the Oracle Developer Advocates team decide to help them out.

Just last week, I flew to this secret, hidden island and presented to our unsuspecting users, for the first time ever, DinoDate: the premier online dating service for dinosaurs.

OK, so, not really. We didn’t really find an island of dinosaurs. We aren’t really going to be able to help dinosaurs find their perfect match.

But we hope you agree with us that DinoDate is more entertaining than another human resources app built on to top of the employees and departments tables.

DinoDate as a Teaching Platform

Oracle Database is packed full of features that can be of great assistance to application developers, whether building those applications in Oracle Application Express, JavaScript, Python or any number of other scripting languages.

Such features include SQL itself, PL/SQL, Oracle Spatial, Advanced Queueing, Oracle Text and more.

Yet many developers are not aware of these features or greatly underutilize them in their application development.

We believe that the results of this underutilization are applications that are not as fast as they could be, not as secure as they could be, and not as easy to maintain as they could be.

So we want to help application developers learn about – and learn how to use – all these great features. And DinoDate will be one of our delivery vehicles for this learning process.

DinoDate will provide examples of advanced Oracle Database features such as spatial queries, advanced queuing and text searches.  We will continue to add new examples and features, such as analytical functions, over time. And we will not only use these features, but show you how and why we are using them.


DinoDate Architecture: diversity is key to survival

We’ve designed DinoDate so that we can show how Oracle Database appdev features can be leveraged from  many different programming languages, starting with Python, NodeJS and PHP and adding others later.  This will benefit those who want to learn a new language by allowing them to see how the feature works in each language.

Each feature will be implemented in each language while attempting to follow recommended practices.  Since the database interface takes place at the server application level, each language specific application will provide a restful interface instead of creating views.

AngularJS is used to provide a common shared front end.  If we add a language that is unable to support the restful interface we’ll create custom views.

At the time of this post, we have the AngularJS and Python pieces in place, parts of NodeJS working and the legacy PHP code included.  The plan is to finish with NodeJS then refactor PHP.

After that we have a few things in mind, but the main plan is to choose the next stack based on your interest.  Please leave comments about where you’d like us to go next.

I’m sure there are a lot of people much better at each of these languages than we are, so if you see something we did incorrectly let us know and we’ll get the changes incorporated.

Please download the project and after you get it up and running, feel free to add comments below for any improvements we can make.

This has been a fun project so far, and I’m just getting started. I look forward to learning more – from the technology and from you – as we expand DinoDate.

Leave a Reply