User click “Logout button” Exception The system returns an error if Pre-condition or Post-condition are not met 3.3.1.3 Reset password Description All user can reset pass of acocunt p
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA
blockchain-Lecturer:
PhD.Nguyễn Trịnh Đông
Students:
19521578 – Nguyễn Xuân Hưng
19521638 – Trương Hưng Huy
TPHCM, 12 – 2022
Trang 2Assessment
Trang 3
THANKS
I would like to thank Mr Nguyen Trinh Dong, Lecturer of the Faculty of Software Engineering for creating conditions and opportunities to help my team in the process of building and realizing this course project In the past time, thanks to your guidance, my group has gained certain knowledge and definitions to complete the report in the best way However, in the process of researching and implementing the project, with limited time, knowledge and experience, it is difficult to avoid mistakes, looking forward to receiving your comments to accumulate lessons learned experience for better project implementation
Once again, my team would like to thank Mr
Trang 4Table of content
1 General Introduction 6
1.1 Team Information 6
1.2 Project Information 6
1.2.1 Project Introduction 6
1.2.2 Research Scope 7
1.2.3 Research Content 8
1.2.4 Targeted Results 8
1.3 Tools 8
2 Theoretical foundations and related studies 9
2.1 Blockchain 9
2.1.1 General: 9
2.1.2 Smart Contract 10
2.1.3 Token ERC-20 (Fungible token) 11
2.1.4 Token ERC-721 ( Non-Fungible tokens) 12
2.1.5 Difference between Non-Fungible Token (NFT) & Fungible Token (FT) 14
2.2 What is Web3? 14
2.3.1 Main components 17
2.3.2 Functionalites 18
2.3.3 Reason to use Flutter? 19
2.3.4 Features of rapid development of applications 19
3 Functional Requirement 21
3.1 Domain diagram 21
3.2 Actor list 21
3.3 Use case view 22
3.3.1 Authentication 22
3.3.2 View report 25
3.3.3 Staff management 27
3.3.4 Real Estate 29
3.4 30
3.5 Process View 33
3.5.1 System Sequence Diagrams 33
3.5.2 System Activity Diagrams 54
4 Database design 74
4.1 Entity Relation Diagram 74
4.2 Relations 74
4.2.1 RealEstates table: Real estate information 74
4.2.2 Users table: User information 76
Trang 54.2.3 RealEstatePriceHistories table: Real estate’s price history information 76
4.2.4 RealEstatePost table: Real estate post information 76
4.2.5 RealEstatePostType table: Real estate post type information 77
4.2.6 RealEstateType table: Real estate type information 77
5 User inferface design 78
5.1 List of screens 78
5.2 Screen Description 79
5.2.1 Login Screen 79
5.2.2 Sign up Screen 80
5.2.3 Home Screen 81
5.2.4 Notification Screen 82
5.2.5 Message Screen 83
5.2.6 Discover Screen 84
5.2.9 Profile Screen 89
• General Description and handle of screen events 89
Profile screen includes: 89
- Recently viewed Button 89
- Button “My favorites” 89
- Button “Past Tour” 89
- Button “My listings” 89
- Button “Setting” navigate to Setting screen 89
5.2.10 Setting Screen 90
• General Description and handle of screen events 90
Setting screen includes: 90
- Button switch change “Notification” 90
- Buttin switch theme “Dark Mode” 90
- Button change language of app 90
- Some button show information about privacy 90
5.2.11 Privacy Screen 91
• General Description and handle of screen events 91
Privacy screen includes: 91
- Show all information abount app 91
5.2.12 Past tour screen 92
• General Description and handle of screen events 92
Past tours screen includes: 92
- Show list all past tours 92
5.2.13 Edit Profile Screen 93
• General Description and handle of screen events 93
Edit Profile screen includes: 93
- Textfiled input edit fullname 93
- Textfiled input edit email 93
- Textfiled input edit address 93
- Textfiled input edit password 93
- Button “Save change” to save all information want to change 93
6 Technology used, installation and functional perfection 94
6.1 Technology used 94
6.2 Installation and test environment 94
6.3 Functional perfection 94
7 Conclusion 95
7.1 Summary 95
Trang 67.1.1 Advantages 95
Trang 71 General Introduction
1.1 Team Information
Group contains two members:
- Member 1 : Nguyễn Xuân Hưng MSSV 19521578
Class : PMCL2019.2 Email : 19521578@gm.uit.edu.vn
- Member2 2 : Trương Hưng Huy MSSV 19521638
Class : PMCL2019.2 Email : 19521638@gm.uit.edu.vn
1.2 Project Information
Blockchain is the current technology trend and is applied in many different fields and industries Large countries or enterprises spend a lot of effort and finance to research blockchain technology with the desire to create practical and highly secure products
The rapid development of Blockchain technology in recent years has been gradually changing the face of many fields and industries in life Not out of that trend, real estate is also changing day by day with what Blockchain technology brings This can completely be a "spring" strong enough to help Vietnam's real estate market accelerate in the digital technology era
Blockchain is considered as a ledger in the digital field, managed by a decentralized network Because of that, Blockchain has outstanding advantages compared
to previous platforms such as: Immutability (cannot be repaired), cannot be faked, digitize contracts, high security thereby creating Absolute transparency for transactions
Perhaps it is not difficult to realize the advantages that Blockchain technology possesses that can easily solve "difficult problems" in the traditional real estate field for a long time:
• Not for everyone: Dozens of barriers from finance, banking, quality control
make real estate has long been considered a game not for everyone
• Transparency: Transparency in traditional real estate activities is always
questioned when cases of corruption, tax evasion and money laundering still
Trang 8occur every year
• High cost: There are countless fees incurred during real estate transactions
such as exchange fees, transfer fees, brokerage fees, attorney fees, etc
• Transaction speed: A lot of procedures and paperwork make real estate
transactions often take place extremely slowly Besides, there is the lack of liquidity, the accessibility of those in need
The "difficult problems" are easily solved, so it will not be difficult to understand when the applications of Blockchain technology in the real estate field are increasing It would not be an exaggeration to say that Blockchain technology is bringing a real revolution to the real estate industry
This study focuses on the basic functions of real estate marketplace:
- Posting for rent/sale of existing real estate based on blockchain technology
- Search real estate
- Show following real estate
Trang 91.2.3 Research Content
Research covers blockchain concepts, introduction to cryptocurrency wallets, concepts of ERC20 (Token), ERC721(NFT), how to deploy contracts on a simple blockchain network
- Blockchain knowledge
- Interact with contracts deployed on the blockchain network
- Successfully built a cryptocurrency real estate marketplace
Trang 102 Theoretical foundations and related studies
Each block contains information about its creation time and is linked to the previous block, along with a timecode and transaction data Once the data is accepted by the network, there is no way to change it Blockchain is designed to resist fraud and alteration of data
2.1.1.2 How Blockchain works?
Blockchain is a combination of 3 technologies:
- Cryptography: to ensure transparency, integrity and privacy, Blockchain technology uses public key and hash function
- Peer-to-peer network: Each node in the network is considered as a client and also a server to store a copy of the application
- Game theory: All nodes participating in the system must comply with the rules of the consensus game (PoW, PoS, ) and are driven by economic motivation
Blockchain systems are divided into 3 main types:
- Public: Anyone has the right to read and write data on the Blockchain The process
of validating transactions on this Blockchain requires a lot of participating nodes Therefore, to attack this Blockchain system requires a huge cost and is really not feasible For example: Bitcoin, Ethereum, etc
- Private: Users are only allowed to read data, not write because this belongs to an absolutely trusted third party Since this is a Private Blockchain, the transaction confirmation time is quite fast because only a small number of devices are required to participate in the transaction validation For example, Ripple is a form
of Private Blockchain, this system allows 20% of nodes to be fraudulent and only the remaining 80% is stable
- Permissioned (also known as Consortium): a form of Private but adds some other features, this is a combination of Public and Private Example: Banks or joint venture financial institutions will use their own Blockchain
Trang 112.1.2 Smart Contract
Smart Contracts are programs that run on the blockchain A smart contract is like a digital contract that is enforced by a specific set of rules These rules are predefined by computer code that all nodes in the network must copy and enforce
In essence, Smart Contract is just a piece of code that runs on a distributed system (blockchain), allowing the creation of Permissionless protocols (ie without authorization)
Trang 122.1.3 Token ERC-20 (Fungible token)
ERC20 is a technical standard used to issue and deploy tokens on the Ethereum network, a form of Fungible Token ERC20 provides developers with a list of rules that must be followed allowing ERC20s to work seamlessly within the Ethereum platform
Applications:
- The contract structure of ERC20 includes six mandatory functions: totalSupply, balanceOf ,transfer, transferFrom, approve and allowance In addition, there are optional functions such as name, symbol and decimal
- By combining all the above functions, we were able to create ERC20 tokens We can query the total supply, check balances, transfer funds and authorize other DApps to manage our tokens
Each ERC20 token is interchangeable, i.e each unit has equivalent usability and value If you hold 1 USDC, it doesn't matter which particular token you hold You can trade it, exchange it with other people's tokens and they are still functionally identical, just like going to the market to buy fish and meat, you can pay with any amount of 10,000 VND
This is very beneficial, if your token has the goal of becoming a currency of some kind You don't want individual units to have distinct characteristics, as this makes them non-interchangeable This can make some tokens more or less valuable than others, undermining their intended use
Trang 13How it works:
- In simple terms, Smart Contract acts as a deterministic program Smart Contracts will execute a specific task in case certain conditions are satisfied Therefore, a Smart Contract system usually follows "if…then " statements
- On the blockchain network, Smart Contracts are responsible for executing and managing the activities that take place on the blockchain when users (addresses) interact with each other Any address that is not a smart contract is called an Externally Owned Account (EOA) Therefore, the smart contract will be controlled by the computer and the EOA controlled by the use
- Ethereum Smart Contract consists of one contract code and two public keys:
o The first public key is the one provided by the contract creato
o The other key represents the contract itself, this key acts as a unique digital identifier for each Smart Contract
Smart Contracts are implemented via blockchain transactions and they are only activated when an Independent Account (EOA) or other Smart Contracts call them However, the first trigger is always from the EOA (user) side
ERC721 is a widely used NFT (Non-Fungible Token) token standard, it is a more complex token standard than ERC20, with many custom extensions
Trang 14ERC-721 was created by four developers William Entriken, Dieter Shirley, Jacob Evans and Nastassia Sachs in 2018
Applications:
- Digital Art
- Collectibles
Trang 152.1.5 Difference between Non-Fungible Token (NFT) & Fungible Token (FT)
Fungible Token (FT) can be understood as each token is identical, interchangeable and divisible Trustworthy assets in daily use such as US dollars, Bitcoin, Ethereum,
Vietnamese dong, etc can all be considered as interchangeable assets
NFT extends the concept of “non-fungible” by leveraging the Ethereum blockchain to represent unique physical or digital assets NFT ownership is validated and
tracked using a public blockchain
NFT has many use cases It could be a digital asset in a game, a collectible piece
of cryptographic art, or even a real-world object like real estate, etc
2.2 What is Web3?
Web 3.0 is the coming third generation of the Internet where websites and applications
will be able to process information in a human-like intelligent way through technologies
like machine learning (ML), Big Data, decentralized ledger technology (DLT), etc
Originally, Web 3.0 was called the Semantic Web by the inventor of the World Wide
Web, Tim Berners-Lee, and it aimed to be an autonomous, intelligent internet, and more
open
The Web 3.0 definition can be extended as follows: data will be interconnected in a
decentralized manner This would be a huge step up from our current internet generation
(Web 2.0), where data is mostly stored in centralized repositories
Furthermore, users and machines will be able to interact with the data But to do this,
programs need to understand information both conceptually and in context With this in
mind, Web 3.0 has two platforms, semantic web and artificial intelligence (AI)
Trang 162.2.1 Breakthroughs
Web 3.0 inherits the good features of Web 2.0 and has additional elements to help solve the limitations of Web 2.0 including:
- Verifiable: Everything is transparent and verifiable on-chain
- Trustless & Permissionless: Minimize the factors related to trust and anyone
can participate
- Self-Governing: User-centered, users themselves have full rights to their
information and assets
- Distributed: Power is distributed to users and decisions will be made and
implemented by decentralized autonomous organizations (DAOs) All cannot
be controlled by some centralized organization
- Native built-in payments: Web 3.0 applications do not require users to provide
personal information and cannot prevent user payments and transactions
Looking at the above characteristics, do you see similarities between the things that Web 3.0 brings and the blockchain brings? It's no coincidence that blockchains have grown so powerful, they were an integral part of the birth of Web 3.0 It can be said that thanks to blockchain, there is Web 3.0 and thanks to Web 3.0, blockchain can develop
Trang 17Just a Non-Custodial wallet, we can send money to anyone anywhere in the world
- Thanks to DeFi we can deposit money in the bank without having to go to the bank while the interest rate is better, we can borrow without looking at the creditor's face, we can optimize profits by rotating capital or farming
- Thanks to the Play to Earn and NFT games, the player's in-game property is the player's and cannot be destroyed, and also generates a source of income from the game
- There are many other breakthroughs waiting to be discovered
Despite its huge potential, it must be admitted that Web 3.0 is still in its infancy Some limitations can be mentioned as:
- Scalability: There is still a big gap between Web 2.0 and Web 3.0 in terms of
scalability, processing speed, cost,
- UX: User experience is still not really good because to participate in Web 3.0
products like Crypto, users need to learn new knowledge, download new software and manipulate many different steps This is a barrier to mass-adoption
- Accessibility: Applications are mostly built independently rather than integrated
with popular and familiar Web 2.0 applications, reducing accessibility to users
- Cost: The cost to develop a project is very expensive, dapps often have difficulty
putting code on the blockchain because of Ethereum's gas fees or the cost of auditing is also very high
Although there are limitations, they are all being gradually overcome The fact that it is still at an early stage and there are many problems to be solved also means that many opportunities are opened for people who believe in the future of Web 3.0 and develop related products
Trang 182.3 What is Flutter?
As we mentioned in the introduction, this platform is used to develop phone software But that is not the complete definition of this platform Flutter is known as a platform to support software development, mobile applications Cross-platform applications for iOS and Android operating systems developed by Google Corporation It is very commonly used today in the programming world Flutter's mission is to create native apps for Google This is the most complete definition to answer What is Flutter?
Flutter consists of 2 important components:
- An SDK (Software Development Kit): A collection of tools that will help you develop your applications This includes tools to compile your code into native machine code (code for iOS and Android)
- A Framework (UI Library based on widgets): A set of reusable UI components (buttons, text inputs, sliders, etc.) that you can personalize according to your own needs
Trang 19These are the two main components that answer the question of what is the most important component of Flutter Most of today's web or application building platforms
contain frameworks Depending on the purpose of the platform and the user, this
framework may vary However, in general, the features it brings are really effective
After learning about the definition and components of Flutter, we think that functionality is also very important Programmers before using this platform should also know what Flutter features are?
For programming experts, Flutter is considered as a react framework It is really powerful and convenient to use to develop background apps for Google This platform
also uses a fairly easy to understand programming language called Dart Even new
programmers can grasp and use this programming language
Trang 20Not only that, Flutter supports rapid development of application software with flexibility The user interface is easy to understand and beautiful This is also the highly appreciated point in Flutter's features Also, when it comes to what Flutter features are
We cannot help but mention that it can support many different widgets Flutter can also
be represented on a completely different platform
The last feature we have to mention is high and fast working performance
Programmers appreciate these features of Flutter It is really effective in developing native apps for Google and background apps Perhaps because of these outstanding
features, Flutter is chosen by many programmers
After surveying developers, we came up with a lot of reasons to use Flutter Not just generic because Flutter is effective More than that, it has compelling reasons for programmers to use
This is one of the features we mentioned above However, it is really a compelling reason for users to choose Flutter has a lot of hot reload features Users can experience a lot faster and easier than other platforms This is the answer to the question of why should you use Flutter? You should consider this
Trang 21Not to mention, the ability to build interfaces and quickly fix bugs for users These are convincing features to help users develop apps easily The reload experience
is also very easy, no loss of state on emulator, simulator and device for both iOS and Android
Trang 223 Functional Requirement
3.1 Domain diagram
3.2 Actor list
1 Board of Directors Managing the business activities synthesized from the report of Staff
2 Buyer End user of the system, who has the demand of buying real estate
3 Seller End user of the system, who has the demand of selling real estate
4 Agency End user of the system, who want to connect buyer and seller
5 System Admin In charge of all the business related to the real estate field (managing listing for sales, )
6 Staff In charge of customer care, answer customer’s question
Trang 237 Third party Provide maps service, advertisement banners
3.3 Use case view
3.3.1.1
Login
Trang 24Description All User of the system can login in to the system to use any feature
Pre-condition • User need to input phone number and password
• All input should match validate without error message
Post-condition • User record match the user phone number found
• Password must match password record in user record
Flow of event 1 User navigate to login screen
2 User input phone number and password
3 Submit form login
Exception The system returns an error if Pre-condition or Post-condition are not met
3.3.1.2
Logout
Description All user can logout of the system
2 User click “Logout button”
Exception The system returns an error if Pre-condition or Post-condition are not met
3.3.1.3
Reset password
Description All user can reset pass of acocunt
password
2 User input phone number
Trang 253 Click send code to phone number
4 Input code receive from phone number
5 Input new password
6 Click reset password
Exception The system returns an error if Pre-condition or Post-condition are not met
3.3.1.4
Change password
Description All user can change password of acocunt
password
2 User input phone number
3 Click send code to phone number
4 Input code receive from phone number
5 Input new password
6 Click reset password
Exception The system returns an error if Pre-condition or Post-condition are not met
3.3.1.5
Register
2 User input phone number and password
3 Click register button
Exception The system returns an error if Pre-condition or Post-condition are not met
Trang 263.3.1.6
Statistical
Description User can see the report statistic has been generate
Pre-condition
Post-condition
2 Show list report on screen
Exception The system returns an error if Pre-condition or Post-condition are not met
3.3.2.1
Generate report
Trang 27Description User can generate the report statistic
Pre-condition Post-condition
2 Click “Generate” button
3 Choose month for report
4 Click “Ok” button
Exception The system returns an error if Pre-condition or Post-condition are not met
3.3.2.2
Export report
Use case name Export report
Description User can export the report has been generate on statistic
Pre-condition Post-condition
2 Click Report item
3 Click “Export” button
Exception The system returns an error if Pre-condition or Post-condition are not met
Trang 283.3.3 Staff management
3.3.3.1
Manage staff info and status
Use case name Manage staff info and status
Description User can change information and status of staff account
Pre-condition Post-condition
2 Click “Staff” button
Trang 293 Choose staff that want to change information and status
4 Input change information or new status
5 Click “Save” button
Exception The system returns an error if Pre-condition or Post-condition are not met
3.3.3.2
Create staff account
Use case name Create staff account
2 Click “Staff” button
3 Click “Create” button
4 Navigator to create account staff screen
5 Input information abount new staff and valid input
6 Click “Add account” button
Exception The system returns an error if Pre-condition or Post-condition are not met
3.3.3.3
Remove staff account
Pre-condition
2 Click “Staff” button
3 Click Staff that want to remove
4 Click “Remove” button
5 Confirm remove account
Exception The system returns an error if Pre-condition or Post-condition are not met
Trang 303.3.4 Real Estate
Trang 313.3.4.1
List Real Estate
3.4
3.4.1.1
View Real Estate Detail
3.4.1.2
Add Real Estate
Description System admin and Seller can add real estate
Pre-condition • Internet connection is stable
• Server is not down
Post-condition • Real estate is successfully added to the database
Flow of event 1 User click “My Home” tab
2 User navigate to My Home Screen
3 User Click “Add New Property” button
Use case name List real estate
Description All User can see list of available real estate
Pre-condition • Internet connection is stable
• Server is not down
Post-condition • User can see the real estate list that server responded
Flow of event 1 User navigate to home screen
2 System return list of real estate to user
Exception The system returns an error if Pre-condition or Post-condition are not met
Use case name View real estate detail
Description All User can view real estate detail information
Pre-condition • Internet connection is stable
• The real estate item is existed at the time user clicked
• Server is not down
Post-condition • User can see the real estate detail that server responded
Flow of event 1 User Click real estate item
2 User navigate to real estate detail screen
3 System return real estate’s detail information
Exception The system returns an error if Pre-condition or Post-condition are not met
Trang 324 User fill real estate’s information
5 User click “Create” button
6 System saves new real estate to the database
Exception - The system returns an error if Pre-condition or Post-condition are not met
- The system returns an error if user entered invalid real estate information
3.4.1.3
Add Real Estate To Watch List
Use case
name
Add Real Estate To Watch List
Description Buyer and Agency can add real estate to watch list
Pre-condition • Internet connection is stable
• The real estate item is existed and not added to user’s watch list at the time user clicked the heart icon
• Server is not down
Post-condition • User can see the real estate added to watch list
Flow of event 1 User Click “Heart icon” on real estate item
2 System add real estate item to user’s watch list
Exception The system returns an error if Pre-condition or Post-condition are not met
3.4.1.4
Remove Real Estate From Watch List
Description Buyer and Agency can remove real estate to watch list
Pre-condition • Internet connection is stable
• The real estate item is existed and added to user’s watch list at the time user clicked
• Server is not down
Post-condition • User can see the real estate removed from watch list
Flow of event 1 User Click “Heart icon” on real estate item
2 System remove real estate item to user’s watch list
Exception The system returns an error if Pre-condition or Post-condition are not met
Trang 333.4.1.5
Remove Owned Real Estate
Pre-condition • Internet connection is stable
• The real estate item is existed at the time user clicked
• The real estate is owned by user
• Server is not down
Post-condition • User can see the real estate removed from user’s real estate list
Flow of event 1 User “Remove real estate” icon
2 System check if this real estate can be deleted
3 System show popup to confirm user delete decision
4 User click yes
5 System remove real estate from user’s property list
Exception The system returns an error if Pre-condition or Post-condition are not met
3.4.1.6
Chat
Description Seller and Buyer, Agency can chat with each other
Pre-condition • Internet connection is stable
• The user clicked is existed at the time user click
• Server is not down
Post-condition • User can chat with other user
Flow of event 1 User click other user’s avatar
2 System show chat history between users
3 User enter text to send
4 User click send button
5 The chat message is added to chat history and other user can see it
Exception The system returns an error if Pre-condition or Post-condition are not met
Trang 343.4.1.7
Find/Filter Real Estate
Use case name Find/Filter Real Estate
Description All User of system can find or filter real estate based on their need
Pre-condition • Internet connection is stable
• Server is not down
Post-condition • User can see the filtered real estate list that server responded
Flow of event 1 User click “Filter” button
2 User select/enter filter condition
3 User click “Apply” button
4 System return the filtered real estates list
Exception The system returns an error if Pre-condition or Post-condition are not met
3.5 Process View
Trang 353.5.1.1
Login
Trang 363.5.1.2
Logout
Trang 373.5.1.3
Change Password
Trang 383.5.1.4
Reset Password
Trang 393.5.1.5
Register
Trang 403.5.1.6