Category: typescript

Literary awards–part 5 – interactive

Part 1:

Part 2:

Part 3:

Part 4:

Part 5:


I was wandering how to make more attractive the application – and also gain some interactivity. I was thinking of the possibility  to can say what authors / books did you have read – and make some charts from it.

And here was the principal problem: how, between 2 versions of the data, to remember the authors read ? How to make the authros the same between the various awards ?

Turns out it is not so complicated – the only thing is to not version the “read” database .

So I turn out with just a database per table : one for Nobel, one for Booker, one for Bill Gates books, one for my books, one for reading list and one for all authors. Not a good thing, but this happens when you want to keep the database into the browser and updatable…

The source code is at github:

Literary awards–part 4 – publish

Part 1:

Part 2:

Part 3:

Part 4:

Part 5:


The publishing part is the tricky one. I wanted Web and Mobile ( could someone help me with the Windows/Linux part  ? )

Github let’s you have the gh-pages  as an website – see .

What this means in practice ? Menas that , if you deploy the Angular AOT to the gh-pages ( ) , then it should be visible to this url :

There is also a plugin, angular-cli-ghpages , that does this for you: takes the dist folder ( resulting from AOT Angular build ) and put in gh-pages. You can see the result at

For Mobile Android I just install the Cordova, copy the dist folder into Cordova and modify the start page in order to point to the Angular results.

But how can I compile Cordova into an Android application ? Turns out that there is a site – – that takes your code ( not only from GitHub, but for free app it is free  ) and compiles it – and it gives you back the apk. Also , it can sign the application – something that Google Play requires. ( For this, I have had some problems with generating keys:

“C:\Program Files\Java\jdk1.8.0_171\bin\keytool.exe” -genkeypair -alias upload -keyalg RSA -keysize 2048 -validity 9125 -keystore keystore.jks
“C:\Program Files\Java\jdk1.8.0_171\bin\keytool.exe” -export -rfc -alias upload -file upload_certificate.pem -keystore keystore.jks


You can find the Google Play application at


The source code is at github:

Literary Awards–part 3–data

Part 1:

Part 2:

Part 3:

Part 4:

Part 5:


The data – this was the difficult part. As I said, I wanted the data to be local – but how can I put the first time ? And where ? I cannot be cookie, since the authors are a large database for cookies…

There are 3 options : LocalStorage, WebSql and IndexedDB . You can read about those at . I choose LocalStorage because it was simpler – however, this is making the startup of the application slower!

Now, how can I store the data ?  For me, a database with select it was fine – but can I find one that works in the browser ? And with javascript ? Apparently, yes! There is a port from C to js of SQLite – . That means , I can have a SQLIte database and access via Select. Add I can persist too – see .


With all those, now I am ready to have the Nobel authoirs in my application – but how can I introduce to my application ? The list exists on Wikipedia(  and at Nobel site ( . How can I load those into my SQLite LocalStorage database ?

Here comes another pet project of mine, stankins  . With this I can transform the wikipedia page into this:"INSERT INTO tableAuthors (Year,Laureate,Languages,Citation,Genres,PictureUrl,LaureateFullWiki,name) VALUES (?,?,?,?,?,?,?,?)", [


"Sully Prudhomme",


'"in special recognition of his poetic composition, which gives evidence of lofty idealism, artistic perfection and a rare combination of the qualities of both heart and intellect"[12]',

"poetry, essay",




]);"INSERT INTO tableAuthors (Year,Laureate,Languages,Citation,Genres,PictureUrl,LaureateFullWiki,name) VALUES (?,?,?,?,?,?,?,?)", [


"Theodor Mommsen",


'"the greatest living master of the art of historical writing, with special reference to his monumental work, A History of Rome"[13]',

"history, law",





Obvious, it is not perfect – but it works!

What can I do with upgrades * because , obvious, each year I should add the Nobel authors ? Nothing simpler: I will modify the name of the database with the application version from package.json


In environement.ts ( and in prod)

VERSION: require('../../package.json').version

In the typescript class:

public version: string = environment.VERSION;

Finally , in the create database

this.dbPers = new SQL.PersistentDatabase(


async function(sender) {

// Initial creation of database if not found




function(e) {

// Initialization of existing database failed

alert("database failed" + e);



The source code is at github:

Literary Awards–part 2–design

Part 1:

Part 2:

Part 3:

Part 4:

Part 5:


One of the first problem that I was design. How to make a design that works on mobile and web and desktop ? Nowadays, the standard seems to be a menu on the left , that will be hidden when the mobile is rendering  . Also , this menu has three lines that allows to expand / collapse.

There are several resources at .

I have tested all the resources with Window Resizer from Chrome and I was impressed by I was impressed by .

I have found the  empty starter kit ( ) and I started to modify


There was a learning curve here:

The search –  I did not know how to make the search  that was provided , until I found something that was called “

NbSearchService” – always search for a service …

It was a while until a figured how to add a new page to the existing pages ( and now I copy /paste)

I ended up with a bunch of images ( )and other resources that were not needed


All in all, I think that it is more convenient to choose something simpler and not choose a big framework.

The design was pretty simple: Add links on the right to Nobel prize, Booker prize, others and list the authors / books.

And a search will be convenient to find fast the authors on the main page.

But about the data , next time

The source code is at github:

Literary Awards–part 1–start

Part 1:

Part 2:

Part 3:

Part 4:

Part 5:


I was curious to make a project for web and mobile.

The constraints:

1. database just on local, not on a central repository.

2. All with Javascript( OK, TypeScript).,

3. To work on web , mobile, desktop without changing something


The purpose of the project was to list the Literary awards – Nobel, Booker, others. ( I maintain myself a list of best books at )

You can see the final result at ( It is missing the desktop application – but – can you help me with that  – Electron ):

Site Web:

Google Play :

Amazon :

The source code is at github:


In the next blog posts I will show how I made this application – and problems / features / ideas. .