The developed web app has a microservice architecture. All microservices are deployed in a Docker container. When the load increases, it’s possible to easily switch to Kubernetes by launching several instances of loaded microservices to improve performance.
The application uses the following microservices:
- API-gateway: entry point to the backend of the application; to reduce the number of requests and limit the return of data to the end-user, the GraphQL query language is used.
- User-microservice: designed to work with users, appointments, integration with Google Calendar.
- Product-microservice: designed to work with ads (CRUD – create, read, update, delete); ElasticSearch is used to search the application quickly.
- Billing-microservice: integration of the web application with the Stripe electronic payment processing system.
- Cloud-microservice: used for saving images and ads to AWS S3 (or Amazon S3) cloud object storage and adding watermarks.
- Notification-microservice: serves for users notification – mail service and Twilio system for SMS notifications.
- Common-be: contains functionality that is used across all backend microservices.
For the frontend of the application, the Next.js framework was used. This is a high-performance framework that increases the efficiency of SEO optimization.
To ensure data security, our team set up the system to check the user’s role before giving access to the information. The database and all configuration parameters of the application are stored on the server where the web application is deployed, making it impossible to get external direct access to information.
Based on the existing design (logo and corporate colors) we had to redesign a web application considering the usability gaps and upcoming functionality extension. Our designers suggested the UX audit. The client agreed on the UX audit of the home page and registration flow. The mobile version was of the highest priority.
UX Audit & Redesign
On the first stage we discussed and described in detail the goals and profits of the audit and agreed the estimate with the customer. Our team suggested working on the following activities: DISCOVER, DEFINE, UX & VISUAL DESIGN UPDATES.
The client provided the team with access to the application’s analytics.
- Discovery Stage
Within this stage the team performed general analysis of the web app, heuristic evaluation, and components expertise.
- Definition stage
On this stage we defined the criticality extent of UX gaps, prioritized them and provided the client with recommendations.
- UX & Visual design updates
This stage included implementation of recommendations within the development process and next stages of architecturing.
In the course of the redesign process our team researched the competitors: defined the strengths and weaknesses to prevent typical mistakes and find something to stand out with.
Based on the analytics, the team identified the peculiarities of the target audience. The team found out that in most cases the real estate is sold or leased by 55+ year-old users, and it’s sold to/rented by 25+ year-old users. This data served as a basis for the development of a simple interface that would be clear for people of different age groups.
Based on Google Analytics’ data we identified that 72% of visitors use the web application on their smartphones. That is why we followed the Mobile First approach – a development methodology where the optimization of the mobile version is critical. The property descriptions accompanying public pages had to be optimized for mobile versions. It was vital to meet the balance between big volumes of information, user convenience, and limited space of the mobile screen.
The project is carried out following the Agile methodology with two-week sprints. The team performs sprint planning which is agreed with the client. IntexSoft specialists are always in touch to resolve urgent issues.
The client has access to the Jira project, where they can track the progress and the status of ongoing and planned tasks. Also, the customer has access to the project’s Confluence to review and confirm the project documentation.
Access to the client’s services is provided by the client personally and passed to the team members by the project manager.