Pattinson Development
Creating new revenue streams through digital product development
The Challenge
Founded in 1977, Pattison Estate Agents operate 27 offices across the North East, with over 200 members of staff. The leadership team was keen to extend its digital ambitions and provide a new white-label software service to partners, for the management of online auctions. This would expand the company’s reputation in the sector and create a new high-margin revenue stream.
How we helped
We began by mapping the core processes involved in managing online property auctions. From here, we identified which parts could be automated to deliver optimal experiences for buyers and agencies, delivering a series of UX workshops to refine our design.
Our final solution was delivered within 12 months, and enabled Pattinson’s to provide a market-leading software service:
Fully functioning and customisable “online auction” product that seamlessly integrated with the estate agent’s own website via a brandable subdomain.
Automated customer sign-up and bidder verification enabled a smooth customer experience and offered a vast reduction in admin costs.
Powered by Thought’s own opensource multi-site CMS to keep maintenance costs low and to maximise returns for Pattinsons and their partners.
Single CMS across all sub-domained auction sites means adding features is simple and cost-effective, creating high levels of customer satisfaction and options to up-sell.
“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.