Python, Django 2.1 - suggestion and guidance please - django

A very good evening to Everyone. I am a frontend 3D developer well versed with Python and JavaScript. Recently I created a frontend application for interior designing based on webgl. I now want to invest my time in making it a SAAS application using Django. Well my experience with Django is minimal with only experience doing a to-do list based on a tutorial, lol. The frontend of the app is only part (~30%) of the final goal. The product is aimed at manufactures and freelancers in interior designing and should use subscription model. Based on the subscription plans the abilities vary. The main vision is to help manufactures in handling projects with designers both in-house and by employing freelancers.
Technically this translates to user types who are 1) individuals, 2) groups, and 3) subgroups. Also there are assets(meshes, textures) that are available as private and public access. One possibility in the roadmap is including the ability of groups to be able to White label the app (custom domain, Logo etc). Finally, the last part of the vision is social media and I am planning to use LinkedIn for this purpose.
Coming to my experience with Django is quite minimal but I was able to understand the fundamentals in having apps, models etc. My question can be summarised to a list of requirements,
1- groups, subgroups, individuals
2- subscription plans and setting limits
3- subdomain and white labeling.
Now, is it better off to write from scratch? Or use some existing Django based apps and integrate to the whole pipeline? Should I use a CMS or CRM? Can you all please guide me with your wisdom.
Also my sincere apologies on my post exhibiting anything ignorant, if any. For it wouldn't have been intentional. Many thanks in advance.
Regards,
0K

Related

Looking for the right Tools for developing a website with SPA components in Django

i am a new Webdeveloper and im struggeling to find the right tools and frameworks to use for the specific site i am building.
Its a site for managing all kind of information and documents about clients my firm cares for.
It consists of general information (like statistics etc.) that should be served synchronously and a client specific part that should be a SPA (mainly because i want to have a list of all clients on the side, so that the main part of the page updates when you click one).
My problem is , that there is so much information about that kind of stuff (but not specificly a project comparable to mine), so that i can't decide what the best approach would be.
I found those options so far:
Just serve everything with django and update reactive parts of the page with Ajax
building a dedicated Frontend and with Frameworks like Svelte or React and using Django as API.
Using these Frameworks just for the critical components that have to be reactive and serving everything with django
If i understand correctly, the cleanest way would be Nr. 2, but i would lose access to djangos form rendering with crispy_forms (which, for a website consisting mainly of forms, would kinda suck).
The same is kinda true for Option 3 i think, since the critical Elements are mostly forms. And as far is i know you cant render django forms as react components.
I was discouraged from using Option 1, cause it seems to very error-prone to build a SPA without a framework.
I would really appreciate some input from more experienced People like me to help me with the decicion which path to go down.
Greetings!
There are many options, but it all depends on your knowledge and deadline.
Don't try to make everything perfect at once. Make an MVP using the technologies that you are familiar with and show the working version to the management. I'm sure there will be many edits and improvements that they will want to implement.
If you need an advise about stack, then you can look at Django + DRF + Vue.js

Settting up or creating Mobile layouts on an exisiting site with ASPX+Portal Templates

We are currently on Kentico EMS V.7 but when our site(s) was created there was not any mobile device layouts setup. an out entire site is build around ASPX+Portal templates so we don't have the edit layout option on our pages. What would you recommend an origination like ours do in this case? Is there an import or migration tool that can be used to move the pages into a responsive design template (are these available out of the box or do they all need to be built?)
has anyone else come against this challenge with their site when trying to a mobile accessible site, if so what approach did you take to move your site(s) over?
I know Stackoverflow doesn't like to answer broad questions, but I'll save you some trouble and hopefully at least point you in the right direction. I use to be in your shoes and I remember how frustrating it was trying to find resources to learn all of this.
You've got some options, but unfortunately none of them are magic bullets. All of these options involve design and development time. If you haven't already done the research to consider if optimizing your site for mobile users is a good business decision, then I would suggest starting there first.
Mobile Device Detection
Kentico offers device layouts that allow you to change the layout of your site depending on which device a user is browsing your site with. The technique it uses is called device detection, which relies on reading the incoming user agent string of the user's http request on your server and using that information to determine what to send back to the user's browser.
This process happens on the server side of your application and also relies on comparing the user agent string against a list of known user agent strings. Kentico in particular uses the 51degrees library to accomplish this. This has the drawback of not always having the most up-to-date user agent strings, so new devices won't be included in your list unless you keep it updated.
A big problem with this approach is that you wind up maintaining multiple sites and/or layouts. If you uses Kentico's mobile device detection, then any time you need to make changes to a page template you will also have to change each of the different layouts for that template.
You don't have to utilize Kentico's device layouts functionality to do mobile device detection. You could just redirect users to a different site entirely. In which case you can still very easily run into the problem of redundant maintenance.
Yes, there are ways of mitigating these issues, but most web devs agree that responsive design is usually the way to go if you want to cater to mobile users.
Responsive Design
This is a client-side design paradigm that relies on CSS media queries. I'm not going to explain how it works since googling "responsive design" will net you plenty of research material. The short version is your user's browser handles the adjustment of the layout by interpreting the CSS of your site. This means you maintain one CSS file for one site and the client handles the adjustments for you.
Now the down side to this is that it takes a takes a talented web designer to do it properly. There are many responsive frameworks out there that can help you out with this, but their appearance is pretty generic and will likely still require customization to fit your particular brand requirements. Some more popular ones are bootstrap, semantic-ui, and foundation.
I recently helped convert a large website in Kentico with a static design into a responsive design by rebuilding all of the page templates using Bootstrap and merging their stylesheets together so that the desktop version still looked the same and the mobile versions had a consistent appearance with the desktop version. This process took about two months and required a lot of UX and content strategy in addition to visual design and coding skills to accomplish correctly. It's not the hardest job in the world, but requires quite a bit of skill and time to do.
In my humble opinion there is no tool which will make (magically) your site responsive. AFAIK the only way is to redesign your site manually (new CSSs - maybe any UI framework, JS etc...)
Maybe you can still use out of the box features like device profiles and mobile pages. (But I am not sure how it works and if it is supported while using ASPX + Portal templates development models).

User friendly custom lists in Alfresco 4

I'm trying to find a free replacement for Sharepoint 2010. Particularly I need custom lists creation functionality. I've read that Alfresco is a good replacement, but I can't seem to find any tutorial about custom data list creation. In Sharepoint you can create custom lists and fields out of the box, but it seems that with Alfresco you have to deal with XML code, which is not very user friendly, am I right?
If this is the case, is there any other kind of ECM with this functionality?
Thanks,
With Alfresco, there are (3rd Party) tools providing functionality to model content with a gui at runtime, shielding users from ugly XML. Head over to http://addons.alfresco.com and search for "model". Alfresco Form-Model Management is one example.
That said, I can hardly imagine gui based content modeling qualifiying as a critical feature for the choice of an ECM as usually, developers do it infrequently (in one particular project).
Here is a tutorial that shows how to do custom data lists in Alfresco: http://ecmarchitect.com/archives/2010/04/25/1156. I wrote it against Alfresco 3.3 and haven't tested it against the newest versions, but the content modeling stuff and most Share form config stuff haven't really changed that much since then so give it a shot.
The concept of what ECM is about is evolving rapidly. As someone who's built and managed SharePoint, Documentum, Wiki farms as well as ECM services, Web services, Data services and more in large environments, traditional Web ECM definitions are not what many companies are looking for now in solutions. The Web solution does more than "pure ECM". They are also not built and managed by developers and admins in many cases as well. "User admins" is becoming the norm. SharePoint's hierarchical delegation model and customization capabilities are not an end state but they are headed in the right direction. I'm guessing newer releases of Alfresco may move in this direction as well.

Django with Google App Engine - Tutorial Resources

I know there have been a lot of questions of this, however those were either few years ago or did not really answer my specific question.
Main:1 - Anyone has any good recommendation, given the following of my needs:
I don't want to use any technology that is restricted within the App Engine infrastructure (e.g I know Google App Engine provides their framework too)
Some tutorial resources where it assumes that the person doesn't know App Engine and Django but with Python basics.
Main:2 - My second main question is that, does Django serves as one of the best web frameworks for hosting under Google App Engine?
I would appreciate anyone who's willing to share your knowledge on this !
Your requirements are unmeetable. Whatever framework you use, you are stuck with the fact that GAE uses Google's proprietary non-relational db. You can use Django along with Django-nonrel to paper over some of the differences, but they'll always be there.

Suggestion for Approachs to Develop Multi tenant Django Proj on Google App Engine

I was hoping to get some suggestions on some best approaches to develop a multi tenant Django project on Google AppEngine.
Some Thoughts to Consider.
I would assume using djnago.contrib.sites is a must.
I would like to use existing applications such as django-profiles and django-registration, I know their models would need porting.
Can multiple domains be pointed to the GAE App and the site be automatically chosen from the request headers?
IF not multiple domains, is there a way to say take a request say to www.example.com/tenantA/login and www.example.com/tenantB/login and push them to one view but with knowledge tennant without changing all the views, maybe using custom managers to hide the complexity from the views.
Generally hoping this will be a discussion of any approaches you have taken in the past or plan to take.
Looking forward to any Comments/Answers.
Regards
Mark
I can answer the App Engine questions for you, though I don't know the Django ones:
Yes, anyone can point a domain to your app using Google Apps, with the 'add services' option, entering your App ID when prompted. You can then check the 'Host' header to determine what site you want to use.
You can hide information per-tenant by using hooks to automatically insert the host in entities and queries: http://code.google.com/appengine/articles/hooks.html
Today Google released SDK 1.3.6, which includes multi-tenancy baked right into the solution.
http://googleappengine.blogspot.com/2010/08/multi-tenancy-support-high-performance_17.html