Hi Dinuka,

My comments below. I'm also CCing the dev list and I suggest we take this 
discussion there.

> On Apr 10, 2020, at 11:40 AM, Dinuka Desilva <l.dinukadesi...@gmail.com> 
> wrote:
> 
> Dear community,
> 
> I started look in and dig in to airavata-django-portal to start work on the 
> desktop application for airavata. But, my current understanding about the 
> airavata django portal is, it's a good idea to redesign it. Few point to say 
> like that is,
> REST api
> There's improvements needed on the auth flow.
> Endpoints are only session based and does not support token based 
> authentication or authorization.
> Some of the endpoints are redundant and I would say the design can be better.

This all sounds good and would be good contributions. Long-long term, we're 
looking at moving to gRPC on the Airavata API backend so eventually the REST 
api as a separate bridge may go away if the Django portal can make calls to the 
Airavata API server directly.
> Front end
> I feel it's better to have the front end application as a separate 
> application connected to the rest api. So, that it can be managed separately 
> plus customisations can be done irrespective of the api.

Yeah, specifically, I think we might want to move to client-side routing, which 
is used in the admin app, but not in all of the apps.
> Considering the components reusability between desktop application and web 
> application, the architecture can be redesigned.

Absolutely.

> Considering the project I would say, it's better to think of the long term 
> approach rather adding up some more code which means for refactoring. Few 
> more additional points I would like to add are,
> Storage management is a common requirement not only for airavata portal but 
> also in general. For an example, the election project i'm currently working 
> is also having such requirements and actually we also have built something on 
> our side. But, if we could generalise it to a common component, it could be 
> reused.

What do you mean by storage management? I'm not familiar with your election 
project, what did you do regarding storage management there?
> Since this api is meant for the clients to consume directly, it'll be better 
> to have some kind of more documentation as in like open api spec for an 
> example. So, that they could play around with it.

There is a browseable API, if you go to localhost:8000/api. However, to be user 
friendly it does require some more work. There are plugins to 
django-rest-framework that can generate an open api spec or interoperate with 
one. Those might be worth investigating.

> Actually this is my understanding for few weeks and I would like to have your 
> thoughts and advices.

This all sounds good. I encourage to post your specific ideas, as detailed as 
possible, to get the discussion going.

Attachment: smime.p7s
Description: S/MIME cryptographic signature

Reply via email to