Squacktus's Forum Posts

  • 6 posts
  • So far I've created a lot of software using Construct 2. Here are three recent notable examples.

    The first one is called Report Management Client (RMC).

    This is custom-designed to generate insurance reports for a specific technology company.

    It features a login screen (with encryption), the ability to change passwords, PDF/XFDF writing and full form validation. It also has the ability to load listbox values from a set of file/folder pairs. This makes it highly customisable and allows service personnel to modify it simply by dropping files into a folder.

    Simply put, a service representative logs in with their ID and then proceeds to fill out the form.

    Once it's filled out, it is saved with a recognisable filename (+ entropy), then automatically opened in a PDF reader for printing out to the customer. This project took a few months to complete.

    Some challenges included saving the files without a confirmation dialog, and using regular expressions for validation.

    Here are some screencaps:

    Some sensitive info blanked out in this one, but you get the idea:

    The second piece of software is a tool I wrote over a day or two for personal use.

    I work as a graphic designer and I've noticed that I'm rather lazy - so much so that I'll take massive breaks in between working for clients. I figured instead of manually typing into Notepad the breaks I take and such, why not create a program which will make it easy for me to log exactly how long I've worked?

    So I made this.

    24-hour time values are entered down the bottom and once two are added, the program starts adding the next one to the next line. As they are added, it keeps track of the exact time I've worked and also calculates how much I'm charging, based of a rate (default $33.33/h).

    Once 'Done' is clicked, it creates a custom invoice (PDF/XFDF), fills in all the values including Total, Rate, Hours and Date and allows me to save and print the invoice. Entropy is included filename in case I want to save more than one invoice per day without it overwriting the previous invoice.

    Some challenges included avoiding that annoying "" bug in Node-Webkit, and doing the whole Number -> decimal hour conversion thing. That had me pretty stumped, so thanks to R0J0hound for helping out with that.

    Screencap:

    Lastly, the home automation app.

    I'll admit this isn't a full automation solution, but it does the job well.

    I recently purchased a Belkin Wemo Switch and connected it to the LED rope lighting I use in my room/office.

    At first I was pretty annoyed since the app Belkin has provided for this is terrible and unstable and upon further discovery, I found that the Wemo Switch uses SOAP or something for communication. Messy stuff to try and copy. Then I discovered this: LINK REMOVED

    Someone has apparently built a sort of server/abstraction layer which acts as a REST API instead of having to use Belkin's proprietary one. Perfect!

    The other downfall at Belkin's end was that they never built any software which allowed the Wemo to be controlled from a PC or Mac, so I set out to make one myself. This is what I came up with; Showtime.

    A small desktop app which would control my lighting for me. In accordance with the limited functionality that the Wemo hardware provides, my app enables control via a toggle button, or a countdown timer with on/off/toggle options. In addition, the app will turn the lights on when it starts, out of convenience.

    It also features an error message if a connection attempt fails more than 10 times consecutively, and will attempt to reconnect. The app comes bundled with the aformentioned REST abstraction/server and it will automatically launch the server, then kill the server when Showtime is exited.

    Here are some screens.

    Startup:

    When Showtime has been initialised and is ready:

    Countdown options

    And in case you're wondering, the little checkbox in the corner stands for Always on Top.

    Aaaanyway, while I can't provide that first program to anyone, shoot me a message if you want a copy of the second two. I'll even customise them for you if you want

  • Thank you so much for this!

    It took a while for me to read through and get through my head, but in the end I found a way to get it to work properly and add each list item.

  • Thanks for the fast reply.

    If I understand correctly, what you're suggesting is to convert any value in the list as soon as it is added?

    If so, I'm not sure - I do need to make sure the list values are still readable after adding. Perhaps there's a way to convert the numbers at the time the rows are all added up, and pushed to the global variable?

  • I am writing a small timesheet application for personal use.

    What this does is helps me keep track of exactly how many minutes I have worked, so I can bill accordingly.

    Once I've actually got it working, I plan to have it write a custom PDF for me. Easy stuff.

    Have a look at the following screencaps:

    GUI:

    Event sheet:

    Here is how it works:

    I enter a 24-hour time value (without colon) into the textbox.

    After pressing "+", the time is added to the list box. A variable called SuffixPending is set to 1, so the system knows that the next time a value is entered, it is to be appended to the same line - to make a complete timeframe row.

    It then changes the variable back to 0, so that the next line can be added.

    This all works sweet.

    BUT, I am completely stumped on how to get C2 to treat the values as base60 (I think that's the term I'm looking for - I am absolutely terrible at maths). What I'm trying to say is for example, for the first screenshot there, I want it to return "60" instead of "300" in the TotalMinuteCount variable - and therefore also in the text label down the bottom.

    Preferably, if possible, I would like to make it so that it returns total hours to two decimal places (eg, for 0230 - 0400, it should show "1.5" - instead of minutes. ButI'll work with whatever answers people can come up with.

    Please explain in simple terms. As I stated before, I am really bad at maths.

    I've already had a look through Scirra's manual about the Timer control. Their guide is useless as it only shows how to convert seconds to different minutes/hours.

    For those confused by the event sheet, the extra variables and actions there such as "ListItemCountUpTo" exist to count the rows correctly. That part is working fine.

    Thanks!

  • Try Construct 3

    Develop games in your browser. Powerful, performant & highly capable.

    Try Now Construct 3 users don't see these ads
  • Thanks guys. I'll try that.

    Permissions shouldn't be an issue; the end user is fine with running the program with elevated privileges each time.

    Love the Colgate, by the way. gg Aphrodite

  • I am currently in the middle of developing a CRM, to be exported using Node-Webkit. I'm quite happy with my progress so far; the application is stable and extremely secure. It uses encryption, input validation (via regex), heavy filesystem expressions, etc.

    However, there is one thing which is making part of it very difficult.

    At the moment, the way it works is a user logs in and from there, they can choose to enter a new customer's details; once all details are entered, the application pops up a save dialog and allows the user to save the information they have entered as a print-ready XFDF file (Adobe auto-filling PDF). After it is saved, the application opens the file for convenience.

    After this is done, a dialog box pops up asking "Do you want to save this customer's information?"

    If yes is chosen, the application should automatically save an encrypted file with all the user's information, in a specific folder - formatted ready for viewing as a record in the application later.

    The issue I'm facing, is that I cannot find a way to make Node-Webkit save files without the use of the Save dialog. It's important that this is done without letting the user choose the location or name, because the file needs to be saved in a specific folder (with all the rest of the customer files), with a specific name (auto-generated token).

    I've tried a few different things including:

    -Node-Webkit's 'Write File' action, using a preset path instead of telling it to use the input from the save dialog... nothing happens

    -Browser's 'Invoke download of string' action... nothing happens

    What's the best way to achieve this?

    If I can get this working, it'd also be nice to make the XFDF file save in the background too, in a preset location and with a preset name, etc.

  • 6 posts