A custom web application for nationwide campaigning

New Democratic Party

The New Democratic Party (NDP) is Canada’s leading progressive political party, with elected members serving in the national parliament and provincial legislatures across the country. Over the last 50 years, the party has helped ensure the introduction of universal medical care, public pensions, and the expansion of Canada’s social safety net. With a federal election on the horizon, the NDP was looking for a trusted partner to build a sophisticated new customer web application that would help them organize and execute a successful election campaign across Canada’s 338 federal electoral districts.


“We are very happy with our experience working with NetFore. The team is highly collaborative, works hard to understand our specific needs, and when they say they will deliver something – they deliver. Faced with an aggressive schedule, NetFore succeeded in providing an outstanding solution.”


Dave Hare, Director of Operations, NDP

Key customer challenges

After making the decision to upgrade their existing system, the NDP had investigated the possibility of customizing a leading sales-focused CRM, but determined their needs would be better served by a custom web application built to their specifications.

With a clear vision of a sophisticated new platform that would be used by hundreds of staff members, candidates and volunteers, the NDP engaged the NetFore team to implement this vision. The resulting custom web application would allow the party to manage and measure all aspects of its national campaign, while taking advantage of the latest technology.

Key Challenges

  • Delivering a full-featured custom web application on a fixed timeline and budget

  • Meeting the unique needs of many different user types
  • Measuring campaign results regionally and nationally
  • Migrating tens of millions of data records

Highly collaborative and iterative software development

As with all NetFore engagements, this one involved working closely with the customer from detailed discovery through to final delivery. Our Agile software development process produced working iterations of the software at regular intervals, which enabled the NDP to measure progress and provide NetFore with timely feedback throughout the development lifecycle.

Step 1: Conduct detailed discovery

Over the first few weeks of the project, members of the NDP team, including campaign managers, IT staff, and political strategists, met regularly with the NetFore team. The NDP experts brought their vast knowledge of election campaigning to the table, which allowed us to develop an in-depth understanding of the party’s requirements.

Working together, we defined user roles, wrote user stories, created wireframes, and defined system architecture and resource requirements. This collaborative approach gave us everything we needed to complete the initial design and estimate the effort for the entire project. It also gave the customer confidence that we thoroughly understood their requirements and would deliver an exceptional solution.

Step 2: Develop the minimum viable product

With the discovery process complete, the team built and delivered an early working version of the product. Stakeholders got an initial look at this “minimum viable product” and users were able to try it for the first time. Their early feedback was instrumental in making improvements in subsequent iterations of the application. Getting a first release out quickly also allowed us to demonstrate measurable progress to the customer.

Key technologies used: Grails, Elasticsearch, AngularJS, Twitter Bootstrap.

Step 3. Deliver frequent iterations

After delivering the first version of the application, NetFore provided the NDP with new features and improvements on a regular schedule, which helped them measure progress against project milestones. The customer’s testing team worked alongside NetFore’s development team to identify any issues and get them resolved as early in the process as possible.

Step 4.  Manage complex data migration

The customer’s existing campaign management application had several hundred unique databases, each with its own set of stored data. Over time, many of these instances had been customized, which led to many inconsistencies.

By getting a head start on data migration in this phase, the team developed an in-depth understanding of how to translate and normalize the input to the new data model from multiple sources. From there, a process and schedule of migration was implemented to import and validate data at regular intervals to ensure the migration was completed before the system went live.

A successful partnership in development

For many organizations, outsourcing a project can be a difficult decision. These organizations often have important resources and skills to contribute to the project and are motivated to use existing team members to reduce project costs and risks. NetFore understands and embraces this approach. We always work closely with the customer for the duration of the project.

This project was no different. Members of the NDP team took the lead in defining and prioritizing requirements, testing, writing documentation, training and project management. NetFore focused on the system architecture, designing the user experience, and executing all product development activities. The successful completion of this ambitious project on time and on budget was a direct result of the tight integration and collaboration between teams.

Project Results

  • First product release completed within 6 months
  • Fully met the rigorous scale and performance requirements of a national election campaign
  • Final custom web application delivered on time and on budget

  • 27 million voter records successfully migrated to the new application

Tell us about your project

Contact us today