Professional Documents
Culture Documents
Web Application Specification
Web Application Specification
Specification
Web Application MVP
Date: 06/01/2023
Revision: A
Contents
1. Project Overview
1.1 Background
1.2 Objective
1.4 Scope
2.5 Performance
3.2 Wireframes
3.4 Benchmarking
5. Budget
6. Appendices
C: Wireframes (PDF)
2
1. Project Overview
1.1 Background
This project originates from a need to revolutionise the way construction cost data is managed and
displayed within the surveying domain. The primary aim is to deliver a simplified yet powerful
application that facilitates the manipulation of table data and its visualization through Power BI
dashboards. This application is envisioned to become a robust platform where consultancies can
efficiently manage, generate, and share cost reports for their construction projects.
1.2 Objective
The core objective of this project is to develop a user-friendly modern application that enables
surveyors to create project cost reports using table and form data, and represent this data through
interactive Power BI dashboards. It will provide a mechanism for users to share dashboards with
clients in a controlled environment, where clients can view all their projects and the latest
dashboard reports without accessing the underlying data. This project is the foundation for an MVP,
with potential for further development based on the initial rollout's success.
The application is targeted at consultancies seeking a streamlined solution for construction cost data
management and representation. The target users are expected to have a low level of technical
proficiency, thereby necessitating an intuitive interface and a straightforward user experience. The
app is not intended for in-house use but will be marketed to various consultancies, necessitating the
integration of payment systems for client subscriptions and robust security frameworks to protect
client data.
1.4 Scope
The scope of this project encompasses the development of the entire application, including front-
end and back-end components, API integrations with Power BI, and the setup of a SQL database for
data management. The selected SQL database technology will be at the developer's discretion,
provided it meets the project's requirements. The Power BI dashboards are excluded from your
scope as they are developed by me. The project's timeline is set for completion within the next 6 to
12 weeks, marking a critical path toward achieving a market-ready MVP.
3
2.1 Technology Stack
Platform:
• Primary Platform: I am happy with you using a no code platform, or any other preferred
platform. Some initial work has been done on Bubble.io but you may wish to discard this and
use another platform.
Database:
• SQL Database: Any SQL database that meets the project's security and performance
requirements is acceptable but Microsoft Azure SQL is preferred for its easy integration with
Microsoft Power BI. The chosen database should support the necessary data manipulations,
querying, and transactions required for the app. It should also support scalable solutions to
cater for future growth in data size. Knowledge in optimizing database performance,
ensuring data integrity, and designing a logical and efficient database schema is crucial.
API Integration:
• Other APIs: Depending on the project's evolution, there may be a need for integrating other
third-party services or APIs.
SQL database; preferably the developer will use Microsoft Azure SQL database for storage as easy
integration with Microsoft power bi, but I am happy with any other
Security Standards:
Power BI:
• Two-Way Integration:
4
• The integration should support the ability to write back data from Power BI to the
application, making it possible to interact with and update data directly from the
Power BI dashboards.
• The developer should have a sound understanding of the Power BI REST API and
should ensure that the integration adheres to Power BI’s best practices for data
connectivity, data transformation, and data refresh scenarios.
• Refer to backend data storage and the attached example which shows the format of
the data, including relevant columns and tables that needs to be sent the API.
Table Management:
• The application should feature Excel-like tables within each project, supporting a
basic suite of Excel functions such as SUM, AVERAGE, COUNT, etc. Users must be
able to copy and paste cells. Refer to wireframes.
• Users should be able to reference data across the tables within the same project for
calculations and data analysis.
• Inter-Table Integration:
• Permissions:
General UI Considerations:
• Responsiveness:
5
• User Feedback:
• Accessibility:
• The UI should follow basic accessibility standards to ensure usability across a broad
user base. This includes clear labels, a logical tab order, and easily navigable menus
and options as already shown in the wireframes.
2.5 Performance
The performance of the application is critical to ensure a smooth user experience and to meet the
operational requirements of the project. Here are the key performance metrics and benchmarks
that should be adhered to:
Responsiveness:
• The application's pages should load within 2 seconds or less to maintain a positive
user experience.
• Optimizations should be made to reduce the load time, such as minimizing HTTP
requests, optimizing images, and leveraging browser caching.
• The two-way API integration with Power BI and other third-party services should
have a response time of 2 second or less to ensure real-time data synchronization
and updates.
• Form Submission:
• Form submissions and other user-initiated actions should provide feedback within 1
second or less to keep the user informed and engaged.
Scalability:
• Concurrent Users:
• Network Scalability:
• The application should respond well under varying network conditions and should
maintain its performance benchmarks on both high-speed and slower network
connections
6
1. Accessing the Profile Creation Page
• Users initiate the process by selecting the “Create Profile” option on the
application’s landing page.
• Full Name
• Contact Number
• Job Title
3. Profile Customisation
• Users can personalize their profile by uploading a profile picture and adding a brief
bio.
• They can also set preferences for notifications and choose interface themes.
• Once the email address is verified, users receive a confirmation message and can
then log into the app.
1. Receiving an Invitation
• They can do this by selecting “Add Another User” from the company menu.
• This invitation is sent to the user’s email and contains a unique link to join the
company profile.
• By clicking on the link in the email, users are directed to a specific page in the app
where the company profile is pre-selected.
• Users should ensure their account details are consistent with the details provided to
the company member who sent the invitation.
• After accepting the invitation, the user’s individual profile is automatically linked to
the company profile.
7
• The user then has access to company-specific features and data, as per the
permissions set by the company's admin.
• Users can manage their personal information and have the option to modify or delete their
profiles in accordance with our data privacy policy.
3.2 Wireframes
The wireframes below and in the document attached received are the exact specifications for our
app's user interface. It's crucial to replicate the design details, interactions, and flows as they are laid
out in these documents.
• Design Accuracy: Match the wireframes in terms of layout, element placement, and size.
Deviations could affect the intended user experience unless absolutely necessary.
• Interactivity: While the wireframes provide a structural outline, they may not fully detail the
dynamics of user interactions. It's essential to implement a polished UI experience. For
interactive elements like buttons, ensure that hovering and clicking are accompanied by
smooth transitions and visual feedback, such as subtle shade changes or animation effects.
This level of detail is critical for a responsive user experience and will be key in engaging
users with the interface.
• Responsive Behavior: Make sure that the interface elements scale and adjust properly to
different screen sizes as indicated.
8
• Accessibility: Follow the accessibility guidelines to ensure the app is usable by everyone,
including people with disabilities.
Adherence to these wireframes is non-negotiable for consistency and quality control. If you
encounter any issues or need clarifications, reach out immediately before proceeding.
Once the user has created a profile, they will arrive in main home where they are prompted to
create a project.
9
Wireframe 3: Create new project form
Project Name
• 25 Character limit,
• No special character
• Must be unique to other projects for that user.
Project Address:
• The physical location of the project (UK address) the primary contact address.
Region:
10
Form Validation:
• All fields should be checked for validation before submission (e.g., no empty fields, correct
format).
• There should be clear error messages for users to correct their input.
Storage
• The format that this data should be stored is detailed in section 3.6. You must refer to this
section.
Wireframe 4: After creating a project the user is prompted to create Project Data.
Project Name
11
Data Type: User can select from a dropdown list:
o Stage 0
o Stage 1
o Stage 2
o Stage 3
o Stage 4
o Stage 5
o Stage 6
o Stage 7
Prepared by Company:
Date:
12
Functional Elements
Project Header:
• Displays the project name, RIBA stage, Data Type, and company name.
• Additional options like 'Cost Basis' and 'Approval' are popups detailed later on in the
wireframes.
Block Addition:
• Users can add another block which will be auto named to Block B etc
13
Wireframe 8: Popout allowing the user to edit the existing project details.
14
Wireframe 10: Example showing project data options
Wireframe 11: Duplicate report allows a user to duplicate report to an existing or to a new project
15
User must be able to duplicate the data to an existing project (such as the current one) or to a new
project where they will be taken to the create a new project.
16
Popout with the same data as the original user data input screen.
17
• Right side Nav has two tabs:
• Data tab listing the project data within that project, grouped by the company name
prepared by.
• The selected dataset is highlighted in bold.
Hovering over the checkbox displays a message for displaying data in main benchmarking
dashboard. This is a single select box (can only be one dataset from each project) and only applies to
data that has not been created by the user’s company. Refer to data storage sections for detail on
what this does in the backend.
18
Wireframe 17: Add Block Use
Selecting add block use allows a user to select a block use class and a build type from the following
list:
• Car Parking
• Offices
• Commercial
• Shops
• Warehouses
• Industrial
• Livestock Buildings
• Co-Living
• PBSA
• Youth hostel
• Hotel
• Residential Houses
• Residential Apartments
• Hospital
• Doctor Surgery
• Fire Station
• Law Court
• Prison
• Theatre
• Cinema
• Restaurant
• Squash Court
• Football Stadium
19
• School
Users must fill out key attributes by selecting a single item from each category (single select only).
The user cannot enter the other sections (elemental costs, areas etc) without selecting one item for
each category and must receive this message if they try to do so.
Build Type:
• New Build
• Renovation
• Refurbishment
• Conversion
• Restoration
• Recladding
• Demolition
• Other
Frame Type:
• Concrete Frame
• Steel Frame
• Space Frame
20
• Composite
• Other
Façade System:
• Traditional Brick
• Brick Slip
• Precast System
• Rainscreen Cladding
• Unitised System
• Curtain Walling
• Double Skin
• Other
• Budget
• Mid Range
• High End
• CAT-A
• CAT-B
• Other
21
Once the user has selected an item from each category they can proceed to the next tabs and come
back and change the categories if required.
After selecting a block use and build type, three tabs appear
22
User can duplicate block to another project or to the existing project.
User can delete a block or user class, this must be prompted by a are you sure message.
Wireframe 22: User can edit the block use and block type or duplicate the block use within that
block only
Wireframe 23: User can add a section the elemental costs tab
23
Selecting from a dropdown list including:
24
Wireframe 24: After user has selected a section, the first row to add data appears.
The cells act like an excel table these are the column headers:
25
• Section measures automatically appear when the user starts adding data and shows:
o Total Cost which is the sum of the cost column for that section
o Total Cost divided by the GIA m2 (refer to areas tab)
o Total cost divided by the GIA ft2 (or multiply GIA m2 figure by 10.6739)
o Total Cost divided by total sum of Function unit columns (see wireframes 28 & 29)
• Delete section option is also to be included; are you sure message popup will appear.
• Units selected from the dropdown list will appear in the following format:
o Nr
o M2
o M3
o Lm
o Item
o %
26
Users should be able to do basic excel formulas, such as sum, sumif, count, countif etc and reference
other tabs (areas / notes tabs) for that use class.
Users must be able to click into a different tab and select cells to reference forumlas from rather
than just typing the formulas (just like excel).
Total row shows the sum of each section measure, fixed to the bottom of the screen not matter
where you scroll.
27
Wireframe 29: Area & accommodation tab
Shows the following columns (those on the wireframe might be slightly different, see below):
28
o 1
o 2
o 3
o 4
o 5
o 6
o 7 increasing by 1 all the way to 75
• Other columns, for each Use Class there will be a different set of columns. Refer to the excel
document attached “Accommodation & Areas” Columns. It is important that in the backend,
all columns no matter what the use class are maintained so that tables with different use
classes can still be appended to each other
• Column formats; refer to accommodation & areas
29
• Users are can add a column, selecting from the standard dropdown for unit, additional
columns created by users are not sent to power bi but must still be stored.
Notes and workings is a blank excel type sheet allowing you to scroll down or across to hundreds of
rows and columns.
30
Cost basis it a popup window with three simple single column tables allowing the user to add rows
when they input data.
A second popup with a simple box input for the user to full out/ Max 30 characters for the prepared
by / checked by / approved by. Date must be validated date format.
Once approval data is entered, the approval box should appear green.
31
After the user has selected the dashboard button or clicked add dashboard from the right side nav,
the user is taken to a screen where they can select from dashboard templates or select from existing
dashboards.
Both templates and existing will need a scroll wheel once there are a lot of reports. Existing reports
should be sorted by the most recent first.
In the backend, I must be able to create custom templates for users, therefore when a new company
account is created a new folder is created in the power bi workspace with the company name as the
folder title with a standard set of templates. I can then enter the folder and edit their basic
templates.
32
After selecting from one of the templates, the user can give the dashboard a name, and select which
data from that project to include in the dashboard (and later edit this via the right side nav (as
shown on wireframe 40).
”Print” button allows the user to print existing page (dashboard only not any side or top nav) to PDF.
Users can then share Power Bi report via an email or via link.
33
Users must login or create an account to view the report and must have permission to view the
report.
When a dashboard is open, the right side nav has a checkbox that allows users to include the data
within the dashboard or not. (any existing option to include in main benchmarking dashboard)
34
Users can change password or icon.
Admin members; users can add or delete members to their company, change admin members.
35
Global Settings; Only admin members have access to this. For non admin members, a message is
displayed “Request Access From your Admin”.
36
Global settings, these contain three tables:
Standard Exclusions; Single column table that can by dynamically added to, hovering over an item
allows a user to delete the exclusions (with an are you sure message). Users can add an exclusion at
the bottom.
Inflation Factor; Contains a list of quarters & years back to 1Q2018. Each time a new quarter begins
(i.e 1st January 2024) the new line is automatically created, the admin user can the edit the different
corresponding number in the second column.
Region Factor; contains a fixed list of 11 regions listed below, users can edit the numbers on the list.
37
• Scotland
• North East
• North West
• Yorkshire and the Humber
• West Midlands
• East Midlands
• East of England
• London
• South East
• South West
• Wales
Users can edit the standard list of numbers in the second column.
Users than do not have a company account that reports have been shared with can view a list of
projects that reports have already been shared with them in the side navigation bar.
This section describes how data should be stored in the backend and the format that it should be
sent to power bi. For each project dataset, the following 6 tables need to be created and sent to
power bi via the api. This section details what the columns are in each table.
In the attached excel document “Back End Data Storage Example”, I give an example of two projects
(and two reports in each project), and I explain each column below.
Project Info;
Each report has a row of date in the “project info” table which contains the following:
38
Client Nr Project Nr Cost Stage Revision Report ID Benchmark
1 1 2 1 1_1_2_1 Yes
Automatically Automatically Based on Automatically Combination of Included in
generated, generated, the user’s generated, Client Nr, Project Benchmark?
each company each project selection starting at 1 Nr, Cost Stage, Yes/ no
account is for each user for “RIBA for each Revision. checkbox;
assigned a is assigned a Stage” project nr refer to
unique unique refer to and cost wireframe 16.
number number wireframe stage.
starting at 1 starting at 1 5.
Elemental Costs
39
Report ID Block ID Block Use Build Type Frame Type
Areas
1_1_2_1
Report Refer to “Areas
ID &
repeated Accommodation
40
in each Columns”
table spreadsheet
and in
every
row
(refer to
Project
info tab)
Technical Exclusions
Report Technical
ID Exclusions
1_1_2_1
Report Single column
ID table (other
repeated than report ID).
in each Text format
table
and in
every
row
(refer to
Project
info tab)
General Assumptions
Report General
ID Assumptions
1_1_2_1
Report Single column
ID table (other
repeated than report ID).
in each Text format
table
and in
every
row
(refer to
Project
info tab)
Information Used
41
Report Information
ID Used
1_1_2_1
Report Single column
ID table (other
repeated than report ID).
in each Text format
table
and in
every
row
(refer to
Project
info tab)
Other tables
Three other tables, standard Exclusions, Inflation Factor and Region Factor, refer to preferences
wireframes. These tables also need to be sent via the api.
Standard Exclusions
Standard
Exclusions
Single column
table (no report
ID as applies
across all
projects) Text
format. Refer to
preferences
wireframe
Inflation Factor
1Q2018 183
Refer to Refer to
wireframes wireframes
Region Factor
42
Region Inflation Factor
London 183
Refer to Refer to
wireframes wireframes
3.4 Benchmarking
Benchmarking incudes all data where “include in main dashboard” checkbox has been selected.
Refer to wireframe 16. All other tables in section 3.3 are sent.
To effectively manage the platform, you will implement a comprehensive administration panel that
allows for the management of subscriptions and users, and give me access. Key features include:
• User Management: Capabilities to add, remove, or modify user accounts, track user activity,
and manage user roles and permissions.
This section will ensure the platform owner has full control and oversight of the platform's
operational aspects, enhancing the ability to manage and grow the user base effectively.
43
• Initial Phase: Project initiation and requirement gathering, concluding by the end of
December.
• January 2024: Entire month dedicated to the design phase, focusing on UI/UX and system
architecture.
• February 2024 (Early): Start of the comprehensive testing phase, including performance,
security, and usability testing in the staging environment.
• February 2024 (Mid): Feedback implementation and bug fixing based on testing results.
Note: Progress updates will be provided at each major milestone to ensure the project remains on
track for the targeted completion date.
Note: At the end of each week, a summary update will be provided to outline the status of the
project, detailing progress made, any challenges encountered, and next steps planned. This will
ensure ongoing communication and transparency throughout the project's lifecycle.
8. Budget
Given the project's limited budget for the initial phase, we will adhere to a fixed price model. This
approach will ensure cost predictability and control. While the budget is constrained at this stage,
we recognize the potential for future development and expansion. Therefore, the focus will be on
delivering core functionalities efficiently, laying a solid foundation for subsequent enhancements as
additional funding becomes available. This strategy allows for balancing immediate project needs
with long-term growth opportunities, ensuring a sustainable and scalable approach to development.
44