{"id":14011,"date":"2025-06-10T13:13:01","date_gmt":"2025-06-10T10:13:01","guid":{"rendered":"https:\/\/dhtmlx.com\/blog\/?p=14011"},"modified":"2025-07-11T13:23:55","modified_gmt":"2025-07-11T10:23:55","slug":"customer-spotlight-dhtmlx-scheduler-jobsiteforecast","status":"publish","type":"post","link":"https:\/\/dhtmlx.com\/blog\/customer-spotlight-dhtmlx-scheduler-jobsiteforecast\/","title":{"rendered":"Customer Spotlight: DHTMLX Scheduler for JobSiteForecast"},"content":{"rendered":"<p><em>For us at DHTMLX, it is of prime importance to justify the trust of our customers. A responsible attitude towards customers often gives them a strong incentive to go for our other products. Today, we are happy to welcome back Ray Smalley, the President of JobSiteForecast LLC. <a href=\"https:\/\/dhtmlx.com\/blog\/customer-spotlight-dhtmlx-gantt-for-field-forecasting-software\/\" rel=\"noopener\" target=\"_blank\">Last time<\/a>, Ray shared with us great insights on how our Gantt component became a part of the solution for construction businesses. Today, we\u2019ll learn about his experience with DHTMLX Scheduler.<\/em> <\/p>\n<p><strong>Hello, Ray! It is a pleasure to meet with you again for the interview. First, please tell us about the place of DHTMLX Scheduler in your project.<\/strong><br \/>\nWe\u2019ve only licensed Scheduler for a short period of time and haven\u2019t fully built it yet. So, we have no users at the moment. But I can explain what we are trying to do. This application is for construction management. The goal of using DHTMLX Scheduler in this app is to display workers (resources) and activities (tasks) assigned to them.  <\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/dhtmlx.com\/blog\/wp-content\/uploads\/2025\/06\/Screenshot_2025-06-04_at_7.54.58\u202fAM.png\" alt=\"Scheduler in customer&#039;s app\" width=\"2300\" height=\"1690\" class=\"aligncenter size-full wp-image-14015\" srcset=\"https:\/\/dhtmlx.com\/blog\/wp-content\/uploads\/2025\/06\/Screenshot_2025-06-04_at_7.54.58\u202fAM.png 2300w, https:\/\/dhtmlx.com\/blog\/wp-content\/uploads\/2025\/06\/Screenshot_2025-06-04_at_7.54.58\u202fAM-300x220.png 300w, https:\/\/dhtmlx.com\/blog\/wp-content\/uploads\/2025\/06\/Screenshot_2025-06-04_at_7.54.58\u202fAM-768x564.png 768w, https:\/\/dhtmlx.com\/blog\/wp-content\/uploads\/2025\/06\/Screenshot_2025-06-04_at_7.54.58\u202fAM-1024x752.png 1024w\" sizes=\"auto, (max-width: 2300px) 100vw, 2300px\" \/><em>DHTMLX Scheduler in the JobSiteForecast app<\/em><\/p>\n<p>The UI of our <a href=\"https:\/\/jobsiteforecast.com\/\" rel=\"noopener\" target=\"_blank\">application<\/a> will include a side panel with a job list next to the timeline. When assigning a job to someone, you can drag a task onto the timeline, adjust the timeframe, and open the dialog box to add assignment details (start and end times, recurrence, etc.). Then, we send that out on the mobile system, so the person in the field has his\/her schedule. That allows the central scheduler to figure out the status of each worker, to move them around, adjust their schedules, and then send updates to the mobile application. When scheduled events conflict with each other, the issue will be highlighted in a different color right in the timeline.  <\/p>\n<p>In a nutshell, that\u2019s what we&#8217;re working on.  <\/p>\n<p><strong>It means that right now you are in the process of configuring the app, right? What would you like to accomplish with the Scheduler component in the end?<\/strong><br \/>\nYes, we have two main objectives: visual representation of workers\u2019 schedules and manpower management functionality. For some of our customers, it is also necessary to adjust working schedules depending on various circumstances. For instance, it is a rainy day and you need to hold off everybody from working. For this purpose, we\u2019ll have the  \u201cTime Off\u201d schedule, where you can set non-working hours (holidays, vacations, rain days, etc.). People will be notified on their mobile phones about changes in their schedules. We also have a system\/mechanism that allows workers to request time off and see the status of their requests in real time.  <\/p>\n<p><strong>Do you plan to synchronize Gantt and Scheduler components?<\/strong><br \/>\nNo, when you are doing construction management, you have two different use cases. For instance, the Gantt chart schedule is used to plan the phases for large projects, and it will tell us how many people are needed on the job site. In DHTMLX Gantt, it is implemented with the resource management functionality. In cases of unbalanced workloads, it is easy to manipulate the schedule via the UI and level things out. The Gantt chart with the workload information is linked to a special table view with start dates and finish dates. This table allows setting the manpower plan for a week. Taking into account the workload data, the system will inform you whether the specified plan is ahead or behind the project schedule. Thus, the whole scheduling process becomes much more fluid.  <\/p>\n<p>The scheduling calendar displays who is working on what job, not specifically what they are doing, but what job they are on. Scheduler is also suitable for planning small jobs, where one or several people are assigned for small tasks, taking two or three days. <\/p>\n<p><strong>Have you faced any difficulties when working with DHTMLX Scheduler?<\/strong><br \/>\nWe haven\u2019t got through the development yet, but we did have a little bit of trouble with the tree view. We wanted to try this Scheduler\u2019s view (mode), but it is not going to work for us. This view is designed for grouping resources rather than projects, as we need this to be in our scenario. Therefore, we cannot use this view without adding complex code. So, we abandoned this approach and took an easier path for displaying the necessary data in the scheduling calendar. <\/p>\n<p><strong>Do you have any recommendations on how to improve our Scheduler component?<\/strong><br \/>\nThe system does support the display of multiple resources on a timeline bar, but we are struggling a little bit with how to implement that. We are trying to figure out exactly how to manage the interface when assigning multiple workers (3-4) to a task. Potentially, the list may include 200 workers (resources). We haven\u2019t got into this yet, so I don\u2019t know how well the multiple resource connection works with the assignment. But, maybe we&#8217;ll need some assistance here.  <\/p>\n<p><strong>If any issues arise, remember that you can contact our tech support team, and they will be glad to help you.<\/strong><br \/>\nThe documentation helps clarify many aspects of working with the components. But when we face more serious issues, we usually send a request to your support team, and we get very good and helpful responses. We try not to make any requests until we get through the thing and think it out carefully to understand the limitations of the component, and work from there. <\/p>\n<p><strong>Last time, you mentioned that your project is written in Angular on the frontend and Node.js on the backend. Have there been any changes since then?<\/strong><br \/>\nYes, we are using that framework now. <\/p>\n<p><strong>Thank you very much for this interview and great insights about using DHTMLX Scheduler in your project.<\/strong>  <\/p>\n<p><em>Our <a href=\"https:\/\/dhtmlx.com\/docs\/submit-showcases.shtml\" rel=\"noopener\" target=\"_blank\">gallery<\/a> contains more great stories from DHTMLX customers, where you can learn more interesting insights about the use of our JavaScript UI components in real-world scenarios.<\/em> <\/p>\n","protected":false},"excerpt":{"rendered":"<p>For us at DHTMLX, it is of prime importance to justify the trust of our customers. A responsible attitude towards customers often gives them a strong incentive to go &#8230;<\/p>\n","protected":false},"author":101014,"featured_media":14014,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[73],"tags":[33,59,39,15],"class_list":["post-14011","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-customer-stories","tag-all-posts","tag-angular","tag-nodejs","tag-dhtmlxscheduler"],"_links":{"self":[{"href":"https:\/\/dhtmlx.com\/blog\/wp-json\/wp\/v2\/posts\/14011","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dhtmlx.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dhtmlx.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dhtmlx.com\/blog\/wp-json\/wp\/v2\/users\/101014"}],"replies":[{"embeddable":true,"href":"https:\/\/dhtmlx.com\/blog\/wp-json\/wp\/v2\/comments?post=14011"}],"version-history":[{"count":4,"href":"https:\/\/dhtmlx.com\/blog\/wp-json\/wp\/v2\/posts\/14011\/revisions"}],"predecessor-version":[{"id":14018,"href":"https:\/\/dhtmlx.com\/blog\/wp-json\/wp\/v2\/posts\/14011\/revisions\/14018"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dhtmlx.com\/blog\/wp-json\/wp\/v2\/media\/14014"}],"wp:attachment":[{"href":"https:\/\/dhtmlx.com\/blog\/wp-json\/wp\/v2\/media?parent=14011"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dhtmlx.com\/blog\/wp-json\/wp\/v2\/categories?post=14011"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dhtmlx.com\/blog\/wp-json\/wp\/v2\/tags?post=14011"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}