Wordpress construction worksite induction solution - wordpress

I'm considering the creation of an in-house construction site induction (or onboarding, I suppose) solution using Wordpress. This would detail the site location (with maps), the site rules and any other relevent information that people working on the site (or visitors) need. Immediate thought is to use an LMS (learning management system) plugin where each 'course' would be a different construction site. Has anybody done something similar and have recommendations?

I've done something similar to this but it would work much better in a multi-site environment. Utilizing an LMS as the solution for this could get complicated in the long run and need some coding changes to work effectively.
Through Multi-Site, you could have a member platform that allows the user to see the relevant information after logging in. Also keeps things more clean and separate on the admin side of things.

Related

Custom Wordpress Development - building a custom page builder

I’m looking for some advice when it comes to custom CMS development.
Wordpress has been perfect for me before a became a developer. I used to use page builders like Elementor & WPBakery.
When developing within WP, would I need to develop a page-builder for people (without coding knowledge) to edit their pages? I’m aware of Gutenberg, is that able to edit coded pages or would it not be able to read anything as it wasn’t built using Gutenberg?
If so, would it not be better to develop a Custom CMS similar to Wordpress? That way you are able to offer a blank canvas CMS that you can brand as your own?
Thanks in advance.
Interesting question! It will require some prior research on your part, as there is no obvious answer. Below are my thoughts on the matter, but it the decision is yours to make, as the project requirements are unique and also the time you can invest in it.
When developing within WP, would I need to develop a page-builder for people (without coding knowledge) to edit their pages?
A: No. Gutenberg is perfect for this.
I’m aware of Gutenberg, is that able to edit coded pages or would it not be able to read anything as it wasn’t built using Gutenberg?
A: It won't read anything that wasn't made with it, but you can try recreating those pages with it. Depends on the design, but it shouldn't be hard. If it is a site for a client, you can ask them to recreate one or two pages and see how they feel. They will answer this question for you :)
That way you are able to offer a blank canvas CMS that you can brand as your own?
A: You can "rebrand" the WordPress admin with such a plugin
If so, would it not be better to develop a Custom CMS similar to Wordpress?
A: It all depends on how comfortable you feel with WordPress and Gutenberg, code-wise. You can do pretty much anything, if you understand the PHP, React (Gutenberg is written in React) and logic behind WP, so you won't need a custom CMS. Again, it all depends on your skills with the technologies. If you rate yourself a 10/10, no need to think about it, but I guess you wouldn't be asking this question, if you were.
Pros of going with WordPress and Gutenberg:
You already have all the necessary tools.
A ton of supporting plugins, already developed by other people.
WordPress has one of the most well-maintained codebases out there, so you will have a great start, compared to building a CMS on your own. Even if you decide to create your own plugin, you have a set of rules and practices that you need to adhere to, which is great for starters. You also have all the necessary components - DB, back-end and front-end ready.
Gutenberg is pretty stable right now and you can install the plugin, because the code that is implemented in WP core is not the latest. It is great for building pages, when you don't know code. Look into all the different blocks it offers by default and think if they cover your requirements. There are also a lot of extra blocks you can add.
The popularity of Gutenberg is growing and the community is slowly, but surely moving in that direction, so making this project with Gutenberg would benefit your future career as a WP developer, if you are interested in building one.
On the point of growing community, you will find answers to a lot of the common issues.
Pros of building your own CMS:
You will see the whole process - DB design, connection and expanding. Back-end and front-end development, user authentication and administration. For me this is a con, because there are many unexpected problems, which WP has solved. It is also very time-consuming, so if you have limited time for this project, I would advise against this.
You can make a slim CMS, which covers only your requirements and you will know the ins and outs of the code, so any future changes and expansions will be easier for you to make.
As you said, it will be easier to brand as your own and you can build the Admin side of it however you want, even though there are defined UX standards, which won't allow you to go very wild. It will probably resemble the WP admin in one way or another. Check out these admin page designs, for reference.
Conclusion
Personally, I would go for WordPress and Gutenberg, because I have had mostly bad experiences with building everything on my own. I am not a good enough coder and that is OK, because I can use all of these tools, built by awesome developers before me. So please keep in mind that building your own CMS will take a lot of time, if you want to make it stable and secure. There are also alternatives to WordPress.

Why do websites like Classcraft not use Meteor for their Frontpage

I was looking at some larger scale Meteor applications and was wondering why some of the initial sites do not seem to use meteor.
As an example when you go to classcraft and look at the main website you notice it is not using meteor.
Then when you go to their actual application (click signup for example) you can see it uses Meteor.
So they make a clear separation in terms of technology. Can someone explain the reasons? Is it not as efficient / clean to just use Meteor for the whole thing.
Thanks,
Jean
Each company makes their own decisions on how/when/where to use technologies. In the case of meteor, the really strong part of meteor is that it's real-time updating. That means things like messaging systems, getting updates out quickly, etc. good uses for meteor.
It appears as though classcraft has decided they don't need that capability on the home page. There's also some concerns with SEO and meteor that perhaps classcraft didn't want to deal with.
Finally the home page not being built in meteor shields the DB from public view, which is not a huge security advantage, but may be one they considered.
This is all me finding reasons for them as I don't know why they'd make that decision. I don't make that decision for my sites/apps but that doesn't mean others might not see things differently.
I'm the founder of Classcraft. To answer your question, it's because we didn't need everything Meteor had to offer for the front-facing website : reactivity, flexible templates, a database, etc. Meteor is amazing for building apps, but it's overkill for a static website. Also, if the front-facing website was built within the game app, it'd mean that any copy changes or tweaks to the front-facing would cause us to have to redeploy the app, which means some downtime (not much, but still) for our users. Keeping them separate also allows marketing people (who aren't developers) to tinker with it without going into the code base for the game.
We decided to build the front-facing website using middleman. Middleman allows you to generate a precompiled static website, which allows for amazing speed and simple server configuration (it's served from S3, which means it's super fast).
I'm sure the reasons are different for everybody, but that's what it was for us.
Shawn

Umbraco alternative?

I've been trying to learn how develop websites with ASP.NET as well as setup a personal website to use as a online porfolio/resume. With my website I've decided to not try to reinvent the wheel and thus decided to use a premade ASP.NET based CMS.
After reading a lot of reviews I settled on Umbraco, but now I'm seeking out alternatives. I like Umbraco a lot but I keep running into problems. Since installing it on my host I haven't made any changes through the file system, or database directly. All changes have been through the admin site. Yet somehow I kept getting it into some state where I could not delete a datatype, and now I'm having problems removing or renaming one of my templates. I've searched for Umbraco forums for solutions and usually find that I have to run some SQL script workaround on the database to clean things up. This kind of thing is really not something I want to fiddle with for my personal site.
Has anyone else had a lot of problems with Umbraco like I have? Are there other free CMS systems out there that are more reliable, yet similar to Umbraco? Specifically I really like how Umbraco gives me total control over the HTML generated by my site. Simple is also better in this case. I'm not trying to create some kind social network/community portal/forum/blog site. There won't be multiple people logging onto this site or anything like that.
I've been reading a bit about N2, which I'm now starting to consider. I like that it's more developer based and that you setup page types through real .NET classes in Visual Studio. Again I don't want to attempt to build my own CMS from scratch, but at the same time I really don't like how hard it is to see what's going on under the hood with most other CMS systems.
I haven't used N2 so I can't comment on that, but alternatives you can consider are Orchard or FunnelWeb, both are on MVC 3 and Razor.
If you're wanting a blog that is mostly just a blog then FunnelWeb is a good option.
I'm currently writing a comparison between Orchard and Umbraco if you're interested as well.
I think you'll be happy you stuck with Umbraco. I was so frustrated with Umbraco when I first started working with it for the exact reasons you stated above. The issue with not being able to delete data types could mean that it's connected to something (IE: document or media type) somewhere and if you force delete it (IE: via the db) you could really mess up your install. <- speaking from experience.
I'm absolutely in love with Umbraco now though. I am completely confident that I can build just about anything I need with it now.
I think that my best piece of advice I can pull from my own experience is make sure that you've got your site architecture planned out thoroughly before starting to build it out in Umbraco. You don't want to be fiddling around in there afterward changing things and that's where you can really get yourself into some hot water.
Have fun!
if you want a minimal .net mvc4 cms with good performance check out puck https://bitbucket.org/yohsii/puck/overview
it adds very few concepts on top of what you need to know for .net mvc but it does require .net4.5 (and therefore VS2012) to work with.
it also uses localdb out of the box but if you don't want to install that just attach the database mdf file to regular sql server and change the connection string

How much of using Drupal involves programming?

I would like to ask those who are experienced with building a website with Drupal. I got a job like this, but I'm more interested in programming. I got also another job offer and cannot decide!!
How often do I get to programming/changing code in Drupal, when building a site in it? Isn't it just about clicking around and downloading modules?
the other job is different but i didn't want to write long descriptions here. This job with drupal got all the positives, but im afraid that its less programming, more clicking and im trying to learn more programming. the other job is classic php programming with company internal framework.
thanks guys
I work in a company where I mostly do Drupal development. Now it's hard to say anything concrete about your job offer, since we don't really know the company etc. There's not really a reason why doing development with Drupal should be any less coding than doing development with some other PHP framework.
You get a lot for free with Drupal, the whole CMS part, all the modules on drupal.org, and yes there will be some AI configuration, but it's usually not that much. All the configuration part of a Drupal and modules is pretty easy if you know what you're doing. For me I spend around 5% of my time for a project doing configuration, making views (a drupal module you can use to create displays) etc, the rest of my time, I use hacking away in my code editor.
As a drupal developer, you mainly do two things.
Write code to add functionality
Write code to alter existing functionality.
Drupal is run is procedural, so there's not much classic OO, instead you write code that gets executed when something happens. Fx a user logs in, then you get a chance to modify the user, do some things like counting how many times the user has logged in.
An important part of Drupal is also presentation. In Drupal we call this theming. Theming is also very code heavy. Drupal is very flexible, so you can overwrite functions used to generate the markup in your theme. These are classic PHP functions. Then there is the whole css, html js part as well.
If you have the chance to do Drupal development, I think you should take it. There is a massive demand for good Drupal developers, that know how Drupal work, and how to use the APIs. It will be something you can use to find your next good job. Knowing some random in house PHP framework, will probably not help you as much in terms of finding your next job.
It's going to depend on how much you want to customize Drupal. You'll typically get to spend some time altering code to change the layout or whatever other UI-related requirements your employer/client would like.
As far as altering the core of Drupal, you wouldn't want to do that anyway or you could run into trouble when a new version becomes available and you want to upgrade. Any custom coding would instead be done in the form of writing Drupal modules or plug-ins.
Comparing your two brief job descriptions, the "classic php programming" option sounds more like what you want to do. There simply wouldn't be a comparison between doing development in Drupal vs. doing development on some company's internal framework, but either way you would get some experience.
Don't let this answer guide your decision on the offers. Pick the one that feels right and works best with your lifestyle. You can always do your own research and development outside of work if you wish to gain experience or knowledge.
It heavily depends on the project. I work as a professional Drupal developer for 2 years.
Normally making a Drupal site consits the following steps:
the site builder gets the spec
the site builder makes a research what modules to use
the themer makes a wireframe
client accepts the wireframe
the designer makes the actual design
the themer starts implementing the design
the site builder starts installing and configuring the modules
if there are problems which can't be solved with the available modules, then the developer gets a specification
the site builder finishes site functionality and applies the theme
testing
deploying
As you can see, your job will be depend on which role do you work. If you apply for a site builder, then you don't have to code much. If you get hired as a developer, you will most likely end up writing bigger or smaller modules for different projects (this is what I do most of the time). At smaller companies, the site builder and the developer (sometimes even the themer) are often the same person.
However if you want to make sure that you will write code all day (and you don't know what roles will you fulfill at the Drupal company), I rather recommend the second job.

Web application integration with Drupal

We want to build a web application, that is specific to our domain, but also includes forums, blogs, etc in this application. Some integration points to Twitter and Facebook are also required.
There will also be a desktop application that connects to our web application for uploading data and downloading configuration and reports.
The question is, can we extend Drupal to host both the regular modules and our web application? (There will be business entities and their properties and daily data uploaded from the desktop application)
Or can Drupal be integrated with external applications? As an example, users and roles need to be the same and consistent across both. We may also want data from the web application searchable in Drupal.
I know this is a bit vague, but I cannot reveal more. I am very new to content management and I just wanted to know if someone has built this kind of application.
I try to rephrase what you wrote, just for you to check that I got your question right. You basically need to create a web application that:
Implements some of the standard functionality of Drupal
Have some custom functionality that should "blend into" the Drupal one (same users, same permissions, etc...)
Be able to upload/download content (or data) from desktop applications.
If I got you right, the short answer is: yes, you can do that with Drupal.
Now for the extensive one:
- Drupal has literally thousands of modules, so I expect you to get most of the things you want by simply installing the right combination of readily available modules.
- Of course, any custom functionality can easily be implemented in form of a module too (quite standard thing these days).
- The interaction with a desktop application is normally implemented via webservices rather than querying the DB directly. Drupal comes natively with a xmlrpc server and client, but you can scale up to SOAP - if you wish - via a couple of contrib modules.
Some additional thoughts:
If you choose to use Drupal, and you start from scratch, then you have to be aware you and your team will need to dedicate some time and effort to understand how Drupal works. Although - differently than Palantir - I stuck with Drupal, I agree with her/him on the fact that Drupal gets complicated complex right off the bat. This is the trade-off you have to pay in order to have a platform that - rest assured - is very flexible, extremely pluggable and rock-solid (otherwise it wouldn't have been used to redesign the whitehouse, nor Drupal would have got for the second year in a row the "best PHP CMS" award, I suppose).
The good news is: there are some excellent books out there, and I would certainly recommend "Pro Drupal Development" for an in-depth and all-around explanation of the system. Just be sure to get the 2nd edition, as the first deals with the now obsolete 5 seres. That said...
A very good thing about Drupal, at least in my opinion, is that most of the tweaks you might need to do to an existing functionality can be implemented by hooking into the original code from a custom module too. This IMO is the biggest advantage of Drupal: you never have to touch other developers' code to achieve your goals, and this means - for example - that you will be able to keep your core and contrib modules up-to-date without breaking any customisation you might have done.
Drupal is heavy. Compared to other CMS it sucks plenty of processing power and RAM from your server, and - unless you are going to have a very small site - I recommend to deploy it in conjunction with nginx, rather than Apache.
Drupal scales well, thanks to a good mechanism of caching and "throttling up" mechanisms. Strange as it might sound, Drupal scales very well on large traffic websites, so that big increases in traffic do not necessarily imply big increases in resource usage.
The user experience out-of-the-box on a Drupal site is quite poor. There is a massive work being done on this at the moment (here and here (video)), but improvements won't be available until D7 is released [soon, but then you will have to wait for the modules to be ported], so it is advisable to allocate some time to create an administrative theme, if the admins of your website won't be of the technical type.
At the end of the day, my advice is: if your site is going to go big / complex / with complicated business logic and lots of functionality, then Drupal is probably a good candidate. If your site is contrarily a small-scale one with standard functionality plus a few custom bits, maybe Wordpress / Joomla could fit your needs better [not because they are 'less powerful' but because Drupal strengths would be unused in this case, while Wordpress/Joomla simpler architecture would probably represent an advantage in this scenario]
Other options would certainly be frameworks like CakePHP or Django, for example, but that - IMO - is a totally different approach to the matter, I would say.
Short answer: Drupal is well suited to build something like that, especially if you are willing to integrate your app/logic into Drupal as a suite of custom modules. The other way, integrating Drupal into an external application, can also be done, but will give you more friction, as Drupals architecture is pretty much geared towards being a framework in its own right.
Longer answer: I have a pretty much opposite opinion/experience compared to Palantirs. I've been working almost exclusively with Drupal for a year now, in the context of two fairly complex/'enterprisy' projects (after several years of 'on the side' usage for smaller things). While I agree that it imposes some rigid rules (but not limits!), I consider this to be an advantage, as those rules give a clear guidance and provide proven ways on how to do things. The three parts Palantir mentions are good examples for this:
Menu system - Provides a well structured and effective dispatching mechanism that is easy to extend with your own stuff, while giving huge flexibility to tweak/manipulate existing/default paths. (Note that 'menu system' in Drupal denotes the whole topic of managing your URL space, not just the subset of 'visible' menus that is usually associated with the term)
Forms API - A declarative approach to web forms, with a well designed processing workflow and a whole lot of built in security features that you would otherwise have to take care of yourself. Also highly extensible, with straight options to adjust/extend already existing forms on demand, add new validation rules to any field or whole forms, multi step forms, javascript based form adjustments, etc.
Translation system - This is pretty complex, simply because internationalization is fricking hard to do. But it is built in, again giving clear guidance on how to do things in order to work in a generic way (though there are problems with quite some contributed modules that are not using/supporting it the way they should).
I could give more examples for parts where I appreciate the 'rules', but this post is getting long already, and I still have to cover some downsides ;)
So to sum up the positive part - if I where given the rough specs you posted, I'd say 'no problem' and go with Drupal, being confident that it would be a solid foundation for the custom parts, while providing all the 'standards' like forum, blogs, twitter/facebook integration and many, many others in the form of already existing solutions (even though those might need some adaption/tweaking).
Downsides: As always, there are flaws, and some of them are substantial, depending on requirements/circumstances.
Learning curve - Drupal is quite complex, and 'grokking' its concepts takes time. 'Playing with it for a week', as Palantir suggests, will certainly give you a general feeling/broad impression, but it is in no way enough to allow for a serious judgement of its pros and cons, as those will only surface while coding in/for it. So if you are already deeply familiar with an established web development framework, this might be an issue. If you have to learn one anyways, this should be less of a problem.
Database restrictions - As of Drupal 6, database support is MySQL or PostgreSQL only, using a Drupal specific 'abstraction layer' (which obviously isn't one ;)
Drupal 7 will move to PDO, which should (finally) end this questionable state.
Test/Stage/Production migrations - Parts of Drupals 'out of the box' flexibility are due to many things being configurable in the administrative backend, which implies that many important configuration settings are stored in the database. This makes migration of data and/or configuration between several instances pretty difficult/tedious, once you left the (early) stages of development where you can get away with complete dump/restore operations (see e.g. this question & answers)
These are the main ones for me, but you'll probably find more :)
I worked for over a year using drupal extensively, but I ended up abandoning it. Drupal, and other CMS systems out there, have very rigid limits and rules. I'd use Drupal for projects where you have simple requirements and few or no business rules. Drupal gets complicated almost immediately when you want to do complex things (especially pay attention at the menu system, forms, and the translation system if you need to be multilingual).
If your system will really be large, with all the things you mentioned, then I'd rather use a PHP framework to implement your business logic, and integrate external products as they fit (a forum, a blog, a twitter client, etc...).
But the advice is: don't trust anyone :) Download it, and play with it for a week. You'll be able to make your mind and be more confident about your choice!
As Drupal is open source, you can pretty much do as you wish with it. A couple of points though:
Changing Drupal's user/role structure would be tedious and unnecessary. You would need to have your desktop application authenticate from Drupal's MySQL database.
Drupal has hundreds of plugins for just about everything, so Drupal could no doubt run the whole "web" side of things including visitor stats etc. You would just need, again, to connect your desktop application to the correct MySQL tables and show the data as desired.
Don't forget to check other content management systems such as Joomla! (and many others). Each has its pros and cons. www.opensourcecms.com allows you to easily test CMSs and I've used it extensively in the past.
Just be sure to map out all the components first. Every hour planning up front saves many hours of headaches later.

Resources