#1 2018-06-10 15:10:23

bLight
Member
Registered: 2018-06-10
Posts: 4

Learning mORMot, information overload

Hi,
I am in the process of developing a cross-platform game, initially targeting Android.
I am developing in Delphi 10.2.3 (latest version as of this posting).

I am trying to understand if mORMot is the solution for me and after reading the introduction and architecture, I think it may be but ...

I come from a UI/UX background, never really having worked with databases, user management and security.
Reading the documentation I'm overwhelmed by the many new acronyms and concepts, the learning curve is steep.

Perhaps I can get advice on which parts of mORMot I need to focus on to achieve these goals:

1. Secure & automatic signup of users.
As a mobile game, users should be securely "signed-up" and "logged-in" automatically on the initial run (no username/password).

2. Secure virtual currency management.
In-game activity can earn the player "points" which can later be redeemed for in-game items.
For security, the client will only send the server the gamer's activity.
The server logic needs to calculate the points based on the activity and award them to the client.

3. Image submission, rating & moderation.
One of the game features requires submitting screenshots (png/jpg files) for other gamers to see and rate.
The submitted screenshots must pass through a human moderation interface to prevent content not suited for children (a version of the app with special permission).

4. Leader-boards
Leaderboard for in-game actions over a time period (1 day, 1 week, 1 month, etc).


At my disposal is a dedicated windows server running IIS 7.5 and a MySQL database, but I can probably install another DB if recommended to do so.

Offline

#2 2018-06-11 08:59:46

pvn0
Member
From: Slovenia
Registered: 2018-02-12
Posts: 210

Re: Learning mORMot, information overload

If you're having a hard time understanding the docs then you probably lack the fundamentals and you should brush up on that before diving into mORMot.

All the things you listed is possible with synopse mORMot, to me it sounds like you're looking for someone to basically do the work for you, for free. I doubt that's going to happen.

Offline

#3 2018-06-11 09:31:21

bLight
Member
Registered: 2018-06-10
Posts: 4

Re: Learning mORMot, information overload

I have experience with some of the fundamentals:
1. Implementing client-side REST/XMLRPC based APIs from opensubtitles, youtube, themoviedb, theaudiodb, etc.
2. Installing databases and configuring IIS7.5.

I was hoping for pointers to the specific technologies that mormot offers I should focus on.

And I don't expect anything for free, If I can't get a handle on this myself, I would be open to a partnership on my game project (which is already pretty far along in the development cycle).

Last edited by bLight (2018-06-11 11:23:59)

Offline

#4 2018-06-12 07:57:54

edwinsn
Member
Registered: 2010-07-02
Posts: 1,215

Re: Learning mORMot, information overload

As @pvn0 said, your question is too broad and you need to be specific if you want ** to be able to get help**


Delphi XE4 Pro on Windows 7 64bit.
Lazarus trunk built with fpcupdelux on Windows with cross-compile for Linux 64bit.

Offline

#5 2018-06-12 08:22:55

bLight
Member
Registered: 2018-06-10
Posts: 4

Re: Learning mORMot, information overload

@edwinsn,
The point of this question was to narrow things down, I laid out the exact use-plan and hoped for a reply to let me know which sections of mormot to study in greater details.

Offline

#6 2018-06-12 09:02:52

edwinsn
Member
Registered: 2010-07-02
Posts: 1,215

Re: Learning mORMot, information overload

Bite them piece by piece. First try understand the official mOMRot samples, then you'll might have ideas on how to implement your requirements.

For your specific needs, I recommend learn the following samples step by step:

https://github.com/synopse/mORMot/tree/ … ent-Server

https://github.com/synopse/mORMot/tree/ … %20Service

https://github.com/synopse/mORMot/tree/ … 20services

https://github.com/synopse/mORMot/tree/ … %20Clients

https://github.com/synopse/mORMot/tree/ … C%20Server


Delphi XE4 Pro on Windows 7 64bit.
Lazarus trunk built with fpcupdelux on Windows with cross-compile for Linux 64bit.

Offline

#7 2018-06-13 09:10:13

bLight
Member
Registered: 2018-06-10
Posts: 4

Re: Learning mORMot, information overload

Thank you edwinsn.

Offline

#8 2018-06-13 09:25:18

msgendodoc@gmail.com
Member
Registered: 2018-01-28
Posts: 15

Re: Learning mORMot, information overload

Hi bLight,

I'm in the same situation as you and do find the overload to be a problem, and fully admit I'm not up to speed with fundamentals in the mORMot domain despite some effort to learn.  I can agree with you than mORMot has a steep learning curve, even though the reference manual is excellent and comprehensive.  It's just too big for the time I have to spend on coding.  It's not that I'm completely stupid (four degrees including PhD), it's that I have a day job for 60 h a week and a young family.   Taming the Mormot website was a bit of help but I haven't really got to the point that I'm on may way to becoming competent at basic mORMot.   I would therefore also like to know if there are any better introductory materials other than the (very good) samples to get up to a workable knowledge with less time and effort spent.  If this learning curve problem is not solved then mORMot will not flourish with new adopters. Is that what everyone wants?  TMS Aurelus, TPiOF etc are viable, if lesser alternatives.   

As an additional point, there is huge scope for someone to build a GUI designer for mORMot to allow graphical RAD style construction of an enterprise  level business solution for any company to adopt without the learning curve or the need even for Pascal developers.  Like what Wordpress is for templated website construction, but for an enterprise IT infrastructure instead.  This is just crying out to be done - to leverage the excellent technology in mORMot to non coding company business analysts, start up founders, and many more use cases.  It's a product which would be awesome, but without the need for technical expertise and high level coding skills.    Why hasn't this been done yet?

Cheers,

Martin

Offline

#9 2018-06-13 11:59:01

JD
Member
Registered: 2015-08-20
Posts: 101

Re: Learning mORMot, information overload

I fully understand where you all are coming from. There is so much to learn in mORMot and I started toying with it in 2015. mORMot has the largest user documentation I've ever encountered outside of PostgreSQL user documentation. It took me over a year before I was able to build a mORMot application. I only know about 40% of mORMot. I completely ignored the ORM/SQLite part and my mORMot server talks to a PostgreSQL database using Zeos.

I was finally able to get going thanks to George's Third Party demo
https://github.com/synopse/mORMot/tree/ … EST-tester

That in addition to the demos referenced by edwinsn in earlier in this thread helped me build my application. My requirements were simple; I wanted

a) an interface based application
b) service oriented architecture (SOA)
b) working over HTTP
c) using JSON to move data from the server to the clients
d) my PostgreSQL database handles user authentication (I don't use the ORM authentication part of mORMot OR any ORM features at all)

These requirements helped me streamline my research and I now have a working application thanks also to the wonderful advice I got from this forum. I still have work to do because I have not succeeded in encrypting the JSON data in transit. I can compress it but I have not yet fathomed how to move from HTTP to WebSockets.

So I would advice you to start small, streamline your needs and let them guide your research. You'll discover that it will be worth your efforts in the long run because I've discovered that using SOA with mORMot allows me to add new functionalities/services very quickly without breaking existing services. That is a very important issue for me. So, all the best.


Cheers,

JD

Last edited by JD (2018-06-13 12:54:13)

Offline

#10 2018-06-13 13:22:12

msgendodoc@gmail.com
Member
Registered: 2018-01-28
Posts: 15

Re: Learning mORMot, information overload

Thanks JD.  Encouraging to know I'm not the only one. As you can see form the interest in this post with over 180 views, lots of people have the same problem.   Will follow up on your advice and the link. 

Cheers,

Martin

Offline

#11 2018-06-14 03:41:40

edwinsn
Member
Registered: 2010-07-02
Posts: 1,215

Re: Learning mORMot, information overload

Hi again my friends.

I developed a POS/Sales management system that's in production completely based on mORMot, I must say mORMot is so flexible, so powerful and of high performance, and I'm glad that I have chosen sqlite as the db engine, apart from it's of high speed, it makes the deployment so easy, and it's so easy to get the db file from the client for any investigation.

The above mentioned system is the first software I started heavily using mORMot, and it only took me days before I started designing and writing the software, and once started, I meet new requirements and I consult the documentation, the samples or this forum.

Well, I consider I myself an experienced Delphi programmer, but really, it's not that hard, I promise you that you'll never regret using mORMot once you get familiar with it.

Here are some **step by step** advises for you. (Here I assume you are familiar with the windows system, have enough database system knowledge and have basic http/web concepts)

1- Make an ORM server first.
No mater how complex your system is, the basic operations will be CRUD, so I suggest you first make an ORM server running on the windows server first, you can achieve that by modifying the "04 HTTP Client-Server" sample, all you have to do is redefine the classes being persisted b mORMot. At this step, don't consider other DB system first.

2 - Make an ORM client on windows (later on we'll tough the mobile part).
Also can be done by modifying the above mentioned 04 sample folder.
With this client, you try to implement inserting, deleting, updating and reading the objects.

3 - implement a server-side API.
You can choose interface-based API or method-based, the later will be easier, and you can learn and modify the "Project06Server" sample. Try adjust the server-side function to be close to your real needs, for example, make the "signup" method.

4 - Although I highly highly highly recommend mORMot+sqlite, because basically mORMot is essentially has turned sqlite into a multi-user, client/server database system. But anyways, start from here, you might want to change the backend database system, and then make sure the ORM and server-side function still works.

5 - Make the mobile client.
Well, I don't use the mobile client, but you can look at the "27 - CrossPlatform Clients", sample, learn and try how to generate the cross-platform clients include FireMonkey, Smart Mobile Studio and FPC.
Once you generated, for example the firemonkey client, you can use the program you done in step 2 as the blueprint, make a FireMonkey program that connect to and consumes the very same server, and ensure the ORM and server-side function works.

6 -
Once you done the above steps, I'm sure you know how to implement your real application.
The rules are, step by step, start small, and bite them piece by piece.

I wrote it in a hurry, hope it helps.

The fact that the author of mORMot (ab) is very passionated, high productive, helpful, have a high interest in optimizing the code, and that his dedicated to the mORMot framework, and he's supported by a company that's using mORMot, plus that the mORMot has been so mature and versatile, apart from the learning curve, I'm confident that **you won't be able to find another better framework** than mORMot at the moment.


Delphi XE4 Pro on Windows 7 64bit.
Lazarus trunk built with fpcupdelux on Windows with cross-compile for Linux 64bit.

Offline

#12 2018-06-19 18:57:54

macfly
Member
From: Brasil
Registered: 2016-08-20
Posts: 374

Re: Learning mORMot, information overload

msgendodoc@gmail.com wrote:

Hi bLight,
(...)
As an additional point, there is huge scope for someone to build a GUI designer for mORMot to allow graphical RAD style construction of an enterprise  level business solution for any company to adopt without the learning curve or the need even for Pascal developers. 
(...)

No, please, this is not a good way. All performance problems, fexibility, etc. start with this.
GUI designer is good, to create screens and only.

If Delphi had a good layout manager from the start, the GUI designer dependency would not be that great.

Making a connection to the database and populating a grid without using the mouse is a very basic thing. Anyone who wants to create a decent application has to know that.

And why does mormot have to be popular?

He is low-profile  by nature smile

Last edited by macfly (2018-06-19 18:58:30)

Offline

#13 2018-06-20 02:35:38

edwinsn
Member
Registered: 2010-07-02
Posts: 1,215

Re: Learning mORMot, information overload

@macfly, I know you are objecting to a full-blown tool for generating a complete mORMot-based application, me too smile

On the other hand, a tool for creating a mORMot application skeleton might help, something like RoR's tool for generating the starting pieces of  a mORMot app.


Delphi XE4 Pro on Windows 7 64bit.
Lazarus trunk built with fpcupdelux on Windows with cross-compile for Linux 64bit.

Offline

#14 2018-06-22 13:31:22

macfly
Member
From: Brasil
Registered: 2016-08-20
Posts: 374

Re: Learning mORMot, information overload

@edwinsn, Yes I agree. It would help a lot. Especially if you could specify the type of application, database, etc. I imagine that the initial seup is what generates greater difficulties.

The manual is very good. But maybe a simpler version with just the initial steps would also help. Something like "learn by example".

My main interest in Mormot is for server-type applications.

I'm very optimistic about the "triforce": Lazarus + New Pascal + Mormot.

Last edited by macfly (2018-06-22 13:32:28)

Offline

Board footer

Powered by FluxBB