Support Platform

Had to blank out a few things hope you don’t mind as the site is in use…

Support Platform for multi-lingual client base (English and Portuguese, has Simplified and Traditional Chinese also). Allows of registration of Users, Property, and Support Tickets related to either or. Assignable Tickets with uploads and notifications including mailer. Search results pages using filtering and pagination. Areas show or hide based on status and user group and a whole host of other things. Bootstrap 4 based, mobile responsive etc, thrown in a Full-calendar custom example for scheduling events (unfortunately no calendar extensions are available from DMX or in Wappler so implemented one myself). A lot more to it but just a brief synopsis, you get the idea, support is support is support! :wink:

Questions welcome!

Yada-yada.

11 Likes

Great example, Dave!
Seems like an advanced system with lots of back-end tools! :slight_smile:

2 Likes

Very Beautiful!! Interesting example!!

1 Like

Thanks Teodor.
Everything in this system is module based and standalone but can link in to any other number of backend platforms/modules that Clients have access to. Very sophisticated reporting engine is accessible by Team Leaders (any number of users can be assigned to a team and a region). Also high priority on communication to all assigned to a specific ticket. Calendar is exportable to each users Google Calendar via a unique key (this feature is the most used if I am honest, and would be great if you guys could code something similar), There is so much customisation going on in that calendar its unreal, each event has a nice roll-out pop-up with links to the respective Tickets details, relying on a lot of SQL triggers/views to take the load off for repetitive events such as updating tables across the db. The Client is happy with it as are the users who are based across the globe.

Was fun with a few hic-ups, but nothing more coffee couldn’t help to resolve!

:wink:

3 Likes

Thank you. The colors are taken from a photograph of a stained window in a monastery here in Portugal. Built a nice set of swatches from various images.

:slight_smile:

3 Likes

Looks really good.
How long did it take you from start to finish? I know, a very open question :smiley:
Apart from the calendar, is this totally Wappler?
You say you implemented the calendar yourself, did you base it on any code or did you literally start from scratch using Wappler? I have been asked to do something similar, and I’m wondering where to start.
How have you implemented the languages? Are the translations in a DB? And switched depending on language chosen stored in a cookie?
Keep up the good work.

1 Like

About a month give or take. I have quite a heavy work-load right now so the time wasn’t entirely dedicated to this single project. A rough estimate in hours would be 20-30 or so I think…

Wappler and Dreamweaver (95%). I did open up Pinegrow occasionally. But predominately Wappler based as I need to catch up with my lack of education of the product as it stands right now.

The calendar is based on Fullcalendar (https://fullcalendar.io/). Free to use and implement. I deployed full CRUD capabilities via pop-ups (with nice date range selectors) as well as cookie based on click options and triggers for moving data around the db based on changes etc (also translates when the language cookie is updated).

I did upload an example right here but it didn’t get that much attention :wink:

Feel free to download it and rip it apart for a good idea of whats going on. JSON based dictionary powers the language with on click events to set the cookie.

Hope that all helps mate! Thank you for your kind feedback.

:slight_smile:

2 Likes

Thanks for the quick reply @Dave, looks like you did very well to keep under the 30 hrs marks. I will take a good look at the examples you mention as no doubt that they will help me. I do remember reading the post about multi languages but don’t remember the zip file, time to revisit :wink:

1 Like

You’re very welcome sir. Thank you.

You can save huge amounts of design time but utilising as much CSS and Includes files as you can muster. Break everything down in to areas. Header, Content, Footer. Externalise all your scripts (again using includes). This alone can save days! And makes everything a breeze to update!

:wink:

4 Likes

@Dave impressive work! Thank you for sharing! Where did you struggle within your project and what wasnt easy with wappler?

would be nice to see or understand which parts were excluded/included. Also some queries? I guess userinformations are queried everytime? Or you did it via cookie?

Hi Freddy,
I got quite frustrated when Wappler would not select my Bindings that’s probably most of my reason for going back to DW to speed up some work-flow as some of the pages have a lot of Bindings on them (and having to go in to code view to select them really slowed me down considerably).

The header menu is all external includes as is the main content area due to several different Groups viewing the pages, each served its own content based on permissions and several other factors. Likewise the footer is an invcludes file, not that complex but again there are some other versions that are deployed based upon user criteria and settings (and for update purposes, new features etc, same for the header and other includes files). All scripts are again in a separate includes file to allow for easy updates and additions across all pages calling the scripts.

A mixture of sessions created upon successful log-in and cookies via various methods. It was pointed out to me that the use of cookies is questionable… NO not at all. They are a great way to get a job done and can offer great security when deployed correctly. They can save huge amounts of execution time and the need for overly complicated actions calling multiple joins to fulfill a simple task for example. Just make sure to destoy them once you are done with them. Sessions as I mentioned also play a good part in repeating data that would otherwise be called via queries here and there. I say make as much use as you can of the great features available within the State Management extension and Wapplers functionality with regards to this area. It is there for a reason and not to be shied away from (my two cents of course)…

:grinning:

1 Like

And thanks for the kind complement Freddy!

:slight_smile:

1 Like

I’d also point out that MySQL can do amazing things. Preparation of your database can save a lot of repeated actions and events. Especially updating multiple tables and columns. Use Triggers and Views as much as you can. Prepare your queries properly. Audit them. Refine them, and then deploy and make use of them. Yes you can do a lot using the query builder and joins and other methods but there is no replacement for an efficient back end. Can speed up your application significantly, as well as the pace of deploying complex queries and events.

3 Likes

@Dave exactly taking alot of time to design and setup your database, views and triggers/prodecured is very important, as it would stuck your whole project later. For what example you used triggers?

And how much time you spend for that aprox.? Or how much time you saved compared to any other framework and do stuff manually…?

Wow @Dave - that looks amazing! Thanks for sharing! And also giving us all the insides of how you build it!
This is very useful for the fellow Wappler’s to see how they can handle major projects with Wappler with easy.

Keep it up - and you know we listen well to your wishes! That is why Wappler gets better every week :slight_smile:

PS. Now I know where to post when the toilet is blocked on a holiday in Portugal :wink:

1 Like

You can find lots of great videos on Youtube and other examples on Stackoverflow. When I get back later I can post some examples. I try not to go to complex with anything. That way resolving issues or expanding upon current implementations remain simple as well. For example if a user updates a ticket we want everything associated with that ticket to be updated, likewise if it is deleted. Simple Triggers perform these actions rather then using stacked delete actions in Server Connect for instance.

I have sticky back white plastic stuck to my desk and a bunch of marker pens. I repeatedly draw designs and relations down on these bits of plastic, then wipe them away when I am happy and add them to the next piece of sticky plastic. Also grab a Post-It note pad and right down your columns and fields on them, then you can shuffle them around on a table until you are absolutely happy with the structure (trying to remove more than you add by the way). It’s a lot easier to have a physical manifestation of your structure right in front of you that you can manipulate in real-time without keep dragging schematics around on a screen. All in all and to answer your question I’d say at least a 1/3 of my time is spent making the structure as tight and as efficient as possible before moving across to database design tools (I like Db Forge Studio for design once I have completed my shuffling of bits of papers, and scribbles).

Edit:

I save a lot more time. Easily several days a month on average! That equates to a week off every working month hehe… :wink:

:slight_smile:

2 Likes

Thank you George! The feedback from everyone here is fundamental to moving forward. We all know things can be achieved in a number of ways but like all here I am always open to new ideas. The object of the exercise is to reduce those numbers. That is where Wappler flies high in comparison to other tools available! And when combined with the right tools for the right jobs it flies like Concorde (really high and really fast)!

:slight_smile:

1 Like

Oh man the waste pipe here is small diameter and cheap plastic to boot! The amount of bog issues is crazy. There are two components to this Clients business. Short-Term (holiday lets) and Long-Term (tenant leases). In the holiday season blocked toilets are an everyday problem. At least now they get dealt with and the Client gets paid as the job is duly noted and accounted for (before these jobs got forgotten about and the Client could be significantly out of pocket due to no records of works being carried out). So the end result is the Client redeems their expenditure, the Guest is happy as they can use the toilet, and the staff are happy as they get paid for their time!

If you do have a blockage while in our amazing country feel free to contact me and I’ll start a Ticket for you hahaha…

:smiley:

EDIT:

From what I understand this system paid for itself within one week due to the recovery of expenditure and a mandatory charge applied for a Support Issue being raised (Site-Visit fees etc).

2 Likes

whats the best way to create the calendar that you have, I’m looking to do something very similar for a booking system.