Pattison Estate Agents
Driving efficiency and improving customer experience through process automation.
The Challenge
Founded in 1977, Pattison Estate Agents operate 27 offices across the North East, with over 200 members of staff. The leadership team understood the importance of digital technology to realise further growth plans but found their legacy systems were impacting negatively on customer experience, creating inefficiencies for admin staff, and restricting opportunities for innovation.
How we helped
We reviewed current systems and mapped the experiences and pain points of employees and customers through a series of discovery workshops. From here, we created a 12-month plan for incremental improvements whilst building a new CRM to provide a more stable base for future development.
Within these 12 months, we delivered a new CRM and website that worked together to:
Automate and speed up internal processes around buyer registration, branch reporting, property promotion and the management of viewings, offers and sales.
Improved customer experience through a quicker, smoother registration process and faster-personalised updates on available properties.
Created commercial advantage through API integrations with Zoopla and Rightmove to provide a real-time data feed of available properties.
Having worked with thought and the team since 2016, they have helped us rebuild our CRM and website, among other projects. We have continued working to maintain and build upon these core business products. They have become an invaluable source of technical knowledge and a de facto extension of our IT department.
Caroline Pattinson - Managing Director
Tech Stack
-
Backend
- Code Quality: Use code analysis tools like SonarQube to identify and fix code smells, technical debt, and security vulnerabilities.
- Security: Implement security measures like data encryption, user authentication, and authorization. Consider using tools like Azure Key Vault to securely store and manage its application's secrets.
- Performance: Optimize its code and database queries for speed and scalability. Use profiling tools like ANTS Performance Profiler to identify and fix performance issues.
- Testing: Implement automated testing for its code to ensure that it meets requirements and performs as expected. Use tools like NUnit or xUnit for unit testing.
-
.NET 6Update to the latest version of .NET 6 to take advantage of the latest features and performance improvements.
-
NHibernate ORM for data accessUse NHibernate best practices for data access, including using the second-level cache, avoiding lazy-loading, and optimizing queries.
-
SQL Server or any other supported database management system (DBMS)Use SQL Server best practices for database management, including indexing, partitioning, and optimization.
-
SignalR for real-time communicationUse SignalR for real-time communication between the server and clients. This could include features like chat, notifications, or live updates.
-
Restful API for client-server communicationUse Restful API for client-server communication, providing a uniform interface and stateless interactions between the client and server.
-
Frontend
- Code Quality: Use code analysis tools like ESLint to identify and fix code smells, technical debt, and security vulnerabilities.
- Security: Implement security measures like data encryption and user authentication. Consider using tools like Azure Active Directory to manage user authentication and authorization.
- Performance: Optimize its code and assets for speed and scalability. Use tools like Webpack to bundle and optimize assets.
- Testing: Implement automated testing for its code to ensure that it meets requirements and performs as expected. Use tools like Jest or Cypress for end-to-end testing and Enzyme or React Testing Library for unit testing.
-
Razor Pages or MVC for server-side renderingUse best practices for server-side rendering, including caching, partial rendering, and client-side hydration.
-
Parcel for task automation and bundlingUse best practices for task automation and bundling, including minification, tree shaking, and code splitting.
-
SASS for stylingUse best practices for styling, including responsive design, modular architecture, and accessibility.
-
Deployment
- Cloud Platform: Deploy the application to Azure, taking advantage of its robust infrastructure and services like App Service, Azure SQL Database, and Azure Key Vault.
- Continuous Integration and Deployment: Use a CI/CD pipeline like AppVeyor to automate the build, test, and deployment process. This helps ensure that code changes are properly tested and validated before being released to production.
-
AzureUse Azure best practices for cloud infrastructure, including scalability, availability, and security.
-
AppVeyor for automated deploymentsUse Git best practices for version control, including branching, merging, and code review. Use tools like Bitbucket to manage its code repositories and collaborate with other developers.
-
Git
- Version Control: Use Git for version control to manage code changes and branches.
- Branching Model: Use Gitflow for managing branches and releases in Git. This provides a structured approach to managing branches and releases, with two main branches (
master
anddevelop
) and feature, release, and hotfix branches used to manage the development process.