Posts

Updated for 2021.

How to use Django with SQL Server LocalDB

LocalDB is a version of Microsoft SQL Server Express Edition designed for developers. LocalDB is easy to install, requires no management, and is compatible with other editions of SQL Server.

LocalDB is lightweight – the setup routine is just 53MB. LocalDB instances will start automatically upon the first connection request and stop automatically shortly after the last connection is closed.

Databases hosted on LocalDB are limited to 10 GB in size.

Follow these steps to install LocalDB, create a database, and connect Django.

Note: These steps have been tested with Microsoft SQL Server 2019, Django 2.2 and 3.0. The pyodbc and django-mssql-backend packages will be used to connect Django to SQL Server.

Installing LocalDB

  1. Download SQL Server 2019 Express from https://go.microsoft.com/fwlink/?LinkID=866658.
  2. Run the setup routine and click Download Media.
  3. Choose LocalDB, specify a download location, and click Download.
  4. Click Close button to close the setup routine.
  5. Run the SqlLocalDB.msi setup routine.
  6. Click Next button.
  7. Accept the license agreement and click Next button.
  8. Click Install button.
  9. Click Finish button.

Installing related database utilities and drivers

  1. Download Microsoft ODBC Driver 17 for SQL Server from https://go.microsoft.com/fwlink/?linkid=2137027 and run the setup routine.
    Note: This is required for the Command Line Utitlities for SQL Server.
  2. Click Next button on Welcome page.
  3. Accept the license agreement and click Next button.
  4. Click Next button on Feature Selection page.
  5. Click Install button.
  6. Click Finish button.
  7. Download Microsoft Command Line Utilities 15.0 for SQL Server from https://go.microsoft.com/fwlink/?linkid=2142258 and run the setup routine.
    Note: This is required to create the database and database user account from the command line.
  8. Click Next button on Welcome page.
  9. Accept license agreement and click Next button.
  10. Click Install button.
  11. Click Finish button.

Creating database

LocalDB supports multiple instances. We recommend created a named instance for each Django project.

  1. Open command prompt as Administrator.
  2. Create a named instance for your project (replace “Project” with the name of your project)
    sqllocaldb create ProjectLocalDB
    
  3. Start the new instance
    sqllocaldb start ProjectLocalDB
    
  4. Verify the instance is running
    sqllocaldb info ProjectLocalDB
    
  5. Connect to the named instance
    sqlcmd -S (LocalDB)\ProjectLocalDB
    
  6. Create login for new instance
    create login my_user with password='my_password'
    go
    
  7. Assign login to the admin role
    sp_addsrvrolemember my_user, sysadmin
    go
    
  8. Create user
    create user my_user
    go
    
  9. Create database
    create database my_db
    go
    exit
    

Configure Django to connect to LocalDB database

  1. Install Django dependencies for connecting to SQL Server
    pip install pyodbc
    pip install django-pyodbc-azure
    

    Note: django-mssql-backend supports Django version 2.2 and 3.0. If you need to work with Django 2.1 or earlier, consider using django-pyodbc-azure.

  2. Update DATABASES settings in your Django application
    DATABASES = {
        'default': {
            'ENGINE': 'sql_server.pyodbc',
            'HOST': '(LocalDB)\ProjectLocalDB',
            'PORT': '',
            'NAME': 'my_db',
            'USER': 'my_user',
            'PASSWORD': 'my_password',
            'OPTIONS': {
                'driver': 'ODBC Driver 13 for SQL Server',
            },
        },
    }
    

 

Low code vs. custom software development

Low code / no code applications are growing in popularity. These apps promise to give anyone the opportunity to develop functional, helpful applications. With simple drag and drop features, and API integration, these low code apps can become part of larger business processes.

Low code apps are primarily used in the following ways.

  1. Database capabilities. When a user wants more depth than Microsoft Excel or Google Sheets, low code solutions provide a relational database that can be used to manage almost anything. For example, Airtable provides a growing number of user-created templates that are used to manage things like:
    1. Marketing campaigns
    2. Job applicants
    3. Projects
    4. Events
    5. Products
  1. Mobile apps, portals and websites. Solutions like Appy Pie and AppSheet allow businesses to create their own mobile application or website without knowing code.
  2. Business platform creator. Solutions like Monday and Kintone come with pre-built blocks to automate your sales, accounting, and marketing teams, to allow teams work from one central dashboard.
  3. Business solution extender. Microsoft PowerApps are designed to add functionality to Dynamics 365, Microsoft 365 and other Microsoft tools.
  1. Workflow and integration. Almost all low code apps combine data from multiple platforms. Either out-of-the-box or with solutions like Zapier, ITTT (If this then that) and Microsoft Power Automate, workflows connect popular apps and services to each other.

Low code apps sound great. Let’s go!

Hold on a second. Low code apps remove the need to know a programming language, BUT… that does NOT automatically make them easy to use – or the right solution for your business.

As a custom software development company, we see companies dive head-first into low code apps without a proper strategy or evaluation. The result is frustrated business users and half-baked solutions that create as many problems as they solve.

We’re not against low code apps.

We use them for our own clients when it makes sense to do so. But a solution (by definition) solves a particular problem.

Let’s say you own apartment buildings. You want a better way to document the condition of an apartment on the occupant move-in date.  You can solve this problem by:

  • Taking pictures and filling out a form. Scan and store those materials in a folder associated with the apartment unit.
  • Buy an off-the-shelf application that creates an apartment inspection report.
  • Use a low code app to create an apartment inspection report.
  • Use a custom developed application to create an apartment inspection report.

No matter how you decide to solve the problem, you need to define:

  • What information do you want to collect?
  • How will it be standardized and categorized? (Unit, Kitchen)
  • What level of detail is required? (Inside of oven?)
  • What field types best suit each item? (free form text, dropdown field with a scale 1-5, multiple choice options, etc.)
  • Where will the information be stored? (File, CRM system)
  • Are there conditions that trigger an action? (Dirty carpet –> Carpet cleaning –> Work order for maintenance)

That’s just a short list of questions for a relatively simple business process.

Only part of a software developer’s job is writing code. Much of the work is about properly defining processes and understanding the exceptions to that process. Think of low code apps like a power tool. They can make a job go faster, but only if you know how to build something in the first place.

10 common low code software issues

We want you to go into your next software development project understanding some of the common problems we see in all software development projects, but in particular, low code do-it-yourself (DIY) projects.

  1. Not gathering the requirements first. Just like the simple example above, you need to think through the steps of the business process before you begin creating it. Otherwise, what happens is that you may accidentally create multiple processes with conflicting rules – or realize you don’t capture that information in the first place.
  2. Not structuring the data correctly. Non-technical users find it challenging to structure the data correctly, to reduce the duplication of effort, but also to get the value needed from the software. Programmers think about how tables relate to each other, and how changing a record will impact other areas of the database.
  3. Over-complicating workflows. Start simply. Get one thing working correctly and build on it. When you have too many moving parts and too many systems involved, it can be difficult to understand where the process is breaking down.
  4. Not documenting your work. One of the lessons every young software developer learns is the importance of creating good documentation as they go. That way, if you’re getting an unexpected result, you go back to the last changes you made.
  5. Spending too much time on the wrong things. Do you really want to build and maintain your own app? It’s easy to spend hours learning how to use this low code app, only to find yourself having to learn more and more to accomplish what you really want. It’s also easy to get stuck on devilish details that make little difference at the end. Is this the right font? Should this red be more red?
  6. Getting deep into the project and realizing you’re stuck. You may run into scalability or security limitations that can’t be overcome. We see this all the time with companies wanting to replace Microsoft Access. If you eventually find that this low code solution won’t meet your needs, can you easily export the data to bring it into a different system?
  7. Having integration limitations. This may be hardware or software. Sometimes a low code app seems perfect for managing a singular task, like collecting data from an IoT device, but integration may not be easy – or even possible.
  8. Billing surprises. Billing can be by user, by record count, by systems involved or functionality added. Seemingly small expenses can add up, and it may be difficult to truly know the full expenses going into the project.
  9. Outgrow storage limits. Some systems (both low code and commercial) have storage limits. Once you exceed a threshold, you get bumped up to a higher expense tier.
  10. Limited reporting. One of the requests we get all the time is to build reports. How long did this process take? How did we do this season compared to last? Make sure your solution has the ability to get the reports you need to run your business.

If a no code or low code solution is capable of meeting your needs, we’re all for it… but when possible, we recommend building solid solutions that become foundational to your business.

Low code apps vs. software development

Some people believe the myth that custom software development is prohibitively expensive. Software development can be very affordable, and even a bargain compared to manually managing processes or trying to do-it-yourself to create your own database or app.

We primarily use Django, a Python framework that provides a fast, secure and scalable way to develop custom applications. While Django is not designed for the average business user, we think that’s a good thing. You can get what you need – with better performance – and without the trials and tribulations of doing it yourself.

As a technology advisor for growing businesses, our goal is to get you the outcomes you want. That may mean recommending an off-the-shelf / SaaS business application, a low code app, or custom software development.  We can help you consider all your options to make the best decision for YOUR business.

Reach out for a no-obligation 30-minute consultation to discuss your needs.

IT quiz

What is low code development?

Low code is an approach to application development that’s very visual and includes little to no coding to build. It enables people of all experience levels to create applications using drag and drop features.

Why is low code development important?

Low code development offers application development for those that aren’t very tech savvy. Companies must build applications to work across a wide range of devices. Low code makes that easy for any employee.

Why should I get custom software?

Custom software is specifically tailored to your business needs. You will get software with every bell and whistle you need, extra security and long-term support.

Can you build an app without coding?

Yes. There are plenty of no-code and low code app builders running around. Create an app in minutes, without any coding experience.

Business Software: The Software Selection Discovery Process

You need software to run your business efficiently, but with so many software programs on the market today, how do you know which one is right for you?

If you run a quick Google search, you’ll find “Top 10 lists” in a multitude of business software categories:

  • Accounting software programs
  • Customer relationship management software
  • Email marketing software
  • Shipping software
  • Invoicing software
  • And the list goes on and on and on….

Just looking at CRM software, you can see just how many options there are!

With so many options available, we recommend working with technology experts (like us!) to get clarity about what you really need. Otherwise, you can get blinded by fancy features that you don’t need – or compromise with a solution you’ll outgrow too quickly.

We work with clients every day to help them find the right small business software. Here’s how the process works.

The Software Selection Discovery Process

First of all, we offer a totally free, no-pressure Explore the Possibilities discovery call for anyone looking to work with us. We’ll spend 30-minutes or so getting to know you and your business challenges.

If you want us to do a more in-depth software selection discovery process, we can help you find the right software that is the best fit for you today and meets your future plans, and meshes well with other departments and other software applications you use. This project can be quick or more in-depth, depending on your unique situation.

Clients have REPEATEDLY told us that the software selection discovery process is money well spent. Implementing software that doesn’t fit your needs is painful – and expensive. We’ll work within your budget to make appropriate recommendations.

STEP 1: Understanding your needs and your business.

Before engaging an IT Consultant – us or anyone else – start to ask yourself questions like:

  • Who will use the system?
  • Why do we need this software?
  • What data needs to be collected? Where is this data?
  • Do we have other systems that do part of this process?
  • Are we willing to change our processes to fit a new system? Or would we rather customize a system to fit our business processes?
  • What’s our budget for this? Can we expect an ROI on this technology investment (or is it a foundational cost of doing business?)
  • Are we already “committed” to an IT infrastructure / solution set that would be best to continue (Google, Microsoft, Linux, SAP, etc.)?

While you may be able to answer many of these questions on your own, as your IT Service partner, we bring an outsider’s objective perspective. Our work with clients exposes us to a broader array of business and technical challenges, and can help you avoid mistakes others have made by:

  • Knowing what other companies have done in similar situations
  • Finding simpler solutions
  • Understanding “marketed features” vs. “actual functionality” to avoid surprises
  • Making sure you have the resources to manage and maintain the system
  • Think of items you might never consider (ex: technical compatibility, overlapping functions, security, speed, etc.)

STEP 2: Understanding your software options

Once we know what you need, the next step is investigate software options. The choices are to:

  1. Find commercial-off-the-shelf packaged software (like QuickBooks) that works out of the box.
  2. If no commercially available software fits your needs, we may recommend software development as an approach to meets your unique needs.
  3. The third option is to take a hybrid approach. Using software you already have or would buy, we may recommend the purchase of add-ons or build integrations to meet your specific needs. To integrate or extend an application, you’d want to verify that the software you buy has SDK or API extensibility.

Pros and Cons of Off-the-shelf Software

Pros

Cons

  • Low cost upfront
  • Support is included/easily added
  • Quicker installation and use
  • Community support
  • Software partner will have a proven track record (reviews, testimonials, online feedback)
  • Can usually integrate or add-on more features later
  • Multiple resources available for consulting and support

 

  • You will likely need to change your business processes
  • May be paying extra for features you don’t need and won’t use
  • “Marketed” features may not be as robust as they seem
  • Doesn’t offer competitive differentiation
  • Support might cost extra
  • Support staff and consultants won’t know your business well
  • Forced software feature changes are outside of your control
  • Price may increase over time

 

Pros and Cons of Custom Development

Pros

Cons

  • Can provide a strong competitive advantage
  • You are in control of the features
  • Often simpler to use
  • New features can be added over time
  • Your development and support teams get to know your business well
  • Modern software development platforms are well-supported and well-documented
  • Typically requires more time and resources up front
  • Project can creep in scope without careful management
  • Requires a trusted relationship with your software developer

 

STEP 3. Make a recommendation.

Which approach is right for you?

It depends.

I know you hate to hear that, but it’s true.

The last step of the discovery process is to give you our professional recommendations, and answer questions you have about the tradeoffs among your options.

In theory, the commercially available off-the-shelf software is the simplest solution. If we can find software that fits your requirements, we can help you get started right away with the purchase and implementation. Most software programs offer some options for configuration (like whether you want to use cash basis or accrual accounting for revenue recognition in QuickBooks). You may be able to do this yourself, or you may want help with the setup.

The catch with commercially available software is that you may need to change your business processes to work the way the software works, which means training employees on the new system.

If you love your current software, but you just wish it had this one extra feature… or would like to create a workflow to automate sending data to another system, we might be able to help you find it or build it. Commercial software often has upgrade and add-on options that offer just what you need. If not, we can custom develop one.  This way, you keep the software features that work and change those that don’t work, creating exactly what you need.

If none of these options are cutting it, we can build a custom software application. This could be a small, one-screen system or a significant multi-year project. If we decide to go down the road of software development or software customization, the next step would be to create a Software Development Blueprint, which we’ll explain in more detail in a later post.

Need help selecting software?

Let our IT consultants help! Our clients tell us they choose to work with us because:

  1. We are software agnostic, focused on what fits your needs, not what makes us the most money.
  2. If we can’t find an off-the-shelf software solution that meets your needs, we can do the software development.
  3. We have the expertise. In our 20+ years, we’ve seen the IT infrastructure and software systems of hundreds of businesses.
  4. We’re a right-sized small business, neither a one-man band, nor a huge IT consultancy. Our services are personalized to fit your needs. Our prices and policies are fair.
  5. We’re committed to helping you achieve your business goals with greater efficiency and less frustration.

Book an Explore the Possibilities call today! 586-263-1775

business technology quiz

What is the difference between off the shelf software and customizable software?

Off the shelf software will be available at major retailers to purchase ready to go. They will include common needs, but possibly not all. Customizable software is a software that can be created based on your own business’ needs.

How do I choose a software that's right for me?

3 Steps to choosing a software: 1. Write down all business needs 2. Search your software options (this may introduce a need for an IT Consultant) 3. Decide if off-the-shelf, customizable, or creating a new software is right for you

What software is the cheapest?

Any off-the-shelf software is going to be cheaper than a custom software or creating a new program. You may need to pay extra for add-ons as well as support once you’ve already purchased the software, making it more expensive in the long run.

What are pros of a custom software?

Custom software advantages: -Can provide a strong competitive advantage -You are in control of the features -Often simpler to use -New features can be added over time -Your development and support teams get to know your business well -Modern software development platforms are well-supported and well-documented

What are pros of an off the shelf software?

Off-the-shelf software advantages: -Low cost upfront -Support is included/easily added -Quicker installation and use -Community support -Software partner will have a proven track record (reviews, testimonials, online feedback) -Can usually integrate or add-on more features later -Multiple resources available for consulting and support

 

Small business has increasingly become dependent on technology. In fact, we often say,

“Every business is a technology business.”

When it comes to small business technical support, you often can’t afford to hire full-time IT staff – and even if you do have one IT professional – that one individual doesn’t always have all the skills needed to keep business operations running efficiently.

Evaluating Small Business IT Consulting Services

When hiring an IT Services company, here are 5 questions that can help you get the best fit for your company’s needs.

1. How will you be billed?

IT service company consulting fees vary based on the billing model. Common models include:

Managed Services – You pay one set price per month, and in return, your computer network is kept running smoothly. This model provides predicable income for the service provider and a budget-able expense for an organization. The challenge is gaining clarity what’s within scope of the set fees.

Set Price Services – Some IT service providers offer set fees, similar to getting an oil change on your car. This pricing model works well for small, discrete jobs.

Time & Expense Services – This billing model allows you to fluctuate your IT expenditures based on cash flow and the intensity of your current IT initiatives

However, you are billed, a good IT services provider will help you find the resolution to the problem but can’t always resolve the problem.

  1. The problem may not be worth fixing. It may be easier and less expensive to buy a computer than repair one that’s 10 years old.
  2. The problem may not be fixable. The hardware and software may be incompatible, and your only choice is to replace one of the system components.
  3. The problem may reoccur. We can remove malware, install anti-malware software and provide recommendations for IT policies and procedures to stop the problem from recurring, but we can’t guarantee your systems won’t become re-infected.

2. Where will the work be performed?

Very few IT services need to be performed on-site any more. While some clients may hire us because we’re a Detroit IT services firm, we actually support clients across the country. Even when clients are right in our township, it’s often simpler and more cost effective to login remotely. That said, when you need software training or have multiple hardware and software issues that need to be diagnosed and resolved, it can be valuable to have local IT professionals come on site.

3. Are you a value-added reseller (VAR) or an independent IT advisor?

Value added resellers typically make a commission on top of the IT services revenue. An independent IT advisor may make an affiliate fee – or may not. The reason you want to know is because a VAR is not going to be as objective. They have a particular software solution to sell. They’re not looking for the BEST software solution for your organization. They’re looking for a good fit with the software they sell.

Now, if you’ve done a software evaluation and you know you want to implement QuickBooks Premier (for example), it makes sense to work with a QuickBooks Pro Advisor who knows the software inside and out. We partner with small business software VARS all the time.

As an independent IT consulting firm, we start with questions like “What’s possible?” “What’s the BEST way to achieve your business goals using technology?”
That may mean looking at several small business software solutions – or even custom software development. We begin with the end in mind and work backward toward the right software solution.

4. Do you do software configuration or software customization?

When an IT consulting firm says they do software configuration, what they mean is that they set it up for your organization. In the case of QuickBooks Premier, they’ll ask you a series of questions, like:

  • When’s your fiscal year end?
  • What states do you pay sales tax in?
  • Are you on a cash or accrual basis?
  • What financial reporting do you need?

The system already supports these options, so the main job of the small business IT consulting services firm is to ensure you understand the questions, and that the software is setup correctly.

When the term is used correctly, software customization can mean a multitude of things, but it ALWAYS involves software programming. Software customization includes:

  • Taking a base pre-packaged software solution, like QuickBooks, and adding features that are unique to your organization. For example, you may take orders in from the web and create an auto-look up of shipping weight and zip code to create a custom shipping cost.
  • Building custom integrations between two software programs.
  • Building an entirely new software program that’s customized to meet your needs. However, this is more commonly (and more accurately) called custom software development or custom software programming.

5. Do you outsource software development overseas or do you use US-based IT professionals?

In this global Internet-connected economy, it’s easier than ever to outsource software development overseas. While you may be able to lower the cost of your IT project, you also need to consider:

  • Business & industry expertise: With most offshore developers, you can’t just “hand off” a project. They don’t understand your business or industry. Can you develop a scope of work that is 100% clear on what you expect to have built? Will the offshore development team understand how to handle exceptions?
  • Communication: How will you communicate your needs? Working with an overseas developer means much more than overcoming a language barrier. Understanding how to translate ideas to software code is a challenge for all programmers.
  • Quality: What’s the quality of the software code? How will it be tested?
  • Support & Upgrades: Will anyone else be able to support the software? How will you upgrade and enhance the software in the future?
  • Privacy: Will your sensitive data and proprietary processes be protected?

Finding the Right IT Services Partner

Very few small businesses today can thrive without leveraging technology to boost efficiency and track metrics. Very small businesses may be able to get by with GeekSquad-type support. As your business grows in size and complexity, it pays to find a strategic technology advisor who has understands both your business goals – and your business challenges. If we can help, please let us know!

What other questions do you ask when you’re hiring an IT consulting firm? Leave us a note in the comments below.

technology business

custom software development maintenance

Custom Software Development – Post Implementation Tips

Custom software applications help businesses get the exact functionality they need. When you’re the only business that does what you do, custom software is a way to add speed and enforce structure, while retaining your unique business processes.

Software Development Tools

Over the last 20 years, our software development team has developed, modified and maintained tons of custom applications. In our early years, we used Microsoft Access for many of the applications we developed.  In fact, we still do quite a bit of Access maintenance work. However, for new software projects, we’ve primarily switched to using rapid software development tools like Django and Python with PostgreSQL or Microsoft SQL Server.

If you’re the business owner or department head, you probably don’t care that much about the software development tools themselves. Your focus (rightly so) is on getting the right solution that fits your needs and is easy to maintain.

What often gets overlooked is the plan for routine custom software maintenance.

Maintaining Custom Software

Like ALL software, custom software needs to be regularly updated and maintained. Unlike off-the-shelf software, the maintenance schedule is primarily driven by you. Certain events may trigger an update:

  • Release of new operating system environments (like Windows 10)
  • Loss of a key software developer
  • Upgrade of a connected software application
  • Change in business processes and procedures

But some clients like to play the “How long can we hold out from upgrading?” game.

Is this you?

  • You have an older computer or server entirely dedicated to running this one application.
  • There’s only one person who is allowed to touch the programming code for fear the entire system will crash.
  • Your business can’t upgrade its systems or business processes because you don’t know how it will impact your custom software.

Outdated Custom Software Creates Risk

You may think you’re stretching your IT budget, but that’s not always true. Delaying custom software updates can add unnecessary risk and cost.

  • Clients who maintain their software regularly typically don’t have to start from scratch every few years.
  • As technology advances – and your custom software doesn’t – your company may be missing out on features that increase efficiency, security and profitability.
  • You may be “forced” to upgrade or replace your software at a time that’s inconvenient.
  • You risk having no one left who is willing or able to support your application.

Make Updates Part of Your Custom Software Development Plan

If you decide to build custom software, budget a certain amount of money to keep your software up-to-date and backed up. You may not know which operating system or database updates will require a patch to your software, but you can expect to do some software maintenance on a regular basis.

Backup and Recovery for Custom Software

Companies that use custom software need to have backup and recovery processes for both the production system and the software source code. The production system, which is the executable version of the software in use in your office, should be backed up regularly with the rest of your company files and databases.

You should also consider how and where the source code is backed up. Without the source code, you won’t be able to make changes to the software program itself. You and your software development company should discuss how many versions of the source code to keep, and the frequency and location of the source code backups. You should be able to access this code in the event something happens to your software development team.

Finally, insist on keeping a change log of updates to the software. If you ever need to bring in a different software development team, this documentation can help them get up to speed quickly.

Need Help?

The custom software development team here at Eclipse Consulting has built mobile apps, custom apps, integrations, and customizations using a wide variety of software development tools. We can help you build from scratch or update the solution you have in place today. See the questions you need to evaluate small business IT consulting services.

Give us a call at 586.263.1775 or click below to see how we can help.

Request a Tech Check

Portfolio Items