Hi Torsten,

> Am 15.07.2015 um 22:51 schrieb Torsten Bergmann <asta...@gmx.de>:
> 
> Another story from 2Denker is up:  http://pharo.org/success/MultiCity
> 
> Client seems to be done using Amber when I check the login page which was
> styled with Bootstrap. Server in Pharo with Nginx. I guess you use Mongo as 
> DB (with Voyage or without).
> 
> @Norbert/@Marcus: if possible can you share with us a few more technical 
> details about
> the technologies/stack used. Also about size (LOC, users, nr of images)
> and pitfalls ...
> 
> There is always something one can learn from the experience of others.

sure I can give some insight in the project. 

For the admin client we use amber plus bootstrap. The backend for this is a 
pharo image with voyage. As you can see in the screenshot there is a geo 
location entered. That can be searched afterwards because mongo provides geo 
spatial indexes. 

The project is built upon a service we provide at 2denker. The service is a 
registry for app installations, users and message tokens. We provide libraries 
for ios, android and windows mobile that registers the app, assigns a user, 
requests a message token from the user and stores it. The service is used for 
notifying the user at return of the car. You then get a notification containing 
the time and price of your car rental. 

The architecture of our infrastructure is event based. Meaning that e.g. the 
installation registration service sends events to a central event bus like 
image. This stores the events in elasticsearch and provides the ability to 
register for events. 

What we had to do for this project? We've built an image that on the one hand 
serves the request of the client admin interface. On the other hand it 
registers at the event server for a certain kind of event. This event is 
triggered by the car return and piggybacks the geo location where the car has 
been left. When such an event travels through our system the event server sees 
a match and calls the image. The image extracts the geo information and 
searches the database for available advertisements. If one is found and 
conditions are met an additional message is sent.

That's roughly it. In the whole process there are 8 pharo images involved but 2 
are for redundancy so it is 6 different images. The rest is a mongo database 
and an elasticsearch database. If you want to know anything more don't hesitate 
to ask.

Norbert


Reply via email to