Portfolio Project: FakeStop!!

Maroua alaya
6 min readJan 17, 2022

“Counterfeit Detection of Documents”

Our Aim is a world without counterfeit and fraud…

In this blog, we take a look at our portfolio project: FakeStop. We describe the purpose of building this project, We’ll go also over Technology & Architecture used and some results of our application.

I really hope this article helps you inspire, develop, or refine your skills. So, let’s get started!!

Introduction:

Degree fraud has become a global phenomenon because of the rising demand of degree certificate in job market. Academic certificate is an important piece of document. So, there is a very great need for the protection of documents to keep it from being destroyed, manipulated or forged into some other document. So, we design a system for verifying certificates, leveraging the blockchain technology.

Blockchain is not just about Bitcoins or other cryptocurrencies. It is also used for databases such as document records.

To keep things organized let’s ask some questions and try to answer them one by one

What is the project’s inspiration?Why we chose to work on this project?

What exactly is the purpose of our project?

What are The Technology & Architecture used in our Project?

What about technical interests as a result of our Project ? So, it’s time for a little demonstration…

What are the challenges have we discovered about our project?

What we learned about yourself as an engineer and how this project informs our engineering path in the future?

Firstly Coming into the point why we chose to work on this project?

First of all, our project is inspired by” a True Story from a movie. As a society, we’re enthralled with stories that actually happened in real life.

After that, we do a lot of researches before beginning our Project, we search to determine whether there is enough information out there for our needs and to set the context of our research. We look up in other sources such as our internet search engines.

So, we discover that:

The problem:

  • The diplomas issued by the universities are in the form of a paper document and the contents on the paper can be easily changed with the advanced technology.
  • This is a threat to both the universities that issues the document and the one who receives the document.
  • Hence it is necessary to validate the document from an authentic source.

The solution:

  • So our project is a decentralized app (Dapp) based on the Ethereum smart contract, it aims to check diplomas and returns the authentication state of them.

What exactly is the purpose of our project?

Our project is aiming to solve the problem of counterfeit documents based on Blockchain technology. The Blockchain technology provides the authentication, authorization, privacy, confidentiality and ownership to the documents of the user which are the required properties of the digital documents.

What are The Technology & Architecture used in our Project?

In our project, we developed a decentralized application and designed a certificate system based on E/thereum blockchain.

Ethereum is an implementation of blockchain technology that can run smart contracts. This technology was selected because it is incorruptible, encrypted, and trackable and permits data synchronization. By integrating the features deleted or modified.

Solidity is the programming language used for implementing smart contracts and is similar to JavaScript. After a Solidity-programmed smart contract is completed, a compiler called solc is required to transform the Solidity code into contract bytecode, which is then interpreted by the EVM. Next, the compiled instructions are deployed in an Ethereum blockchain. This completes the whole process.

So, what is Smart contract: Refer to computer protocols that digitally that facilitate the verification, control, or execution of an agreement.

Technology used for this Project:

We’ve tried making the issue more clear by explaining core algorithms and code snippet of our smart contract:Here is how we built an application , and codes are available on GitHub.

In the smart contract we used struct to store data of diploma:

Then we implement two methods for generating id and checking id of each diploma.

So, What happens when the user make a transaction : (enter Data):

execute the transaction(storage data) in the blockchain,

The new block will be mined and added to the chain,

giving each users’diploma an unique id.

What about technical interests as a result of our Project ? So, it’s time for a little demonstration…

We design an application for verifying certificates:

Blockchain is not just about Bitcoins or other cryptocurrencies. It is also used for databases such as document records.What are the challenges have we discovered about our project?

  • Create a smart contract.
  • Deployment of the smart contract.
  • Linking and synchronizing smart contract with front-end.

The most difficult technical challenge we encountered in the project:

Sep 17 21…Sep 24 21:

We’ve tried to do a lot of research to understand the concept of blockchain, because it’s the first time that we’ve worked with it.

Sep 24 21…Oct 1 21:

We needed to deploy a smart contract on ethereum, so we got a lot time learning the language solidity to write a smart contract that serves our proposal project

Oct 1 21…Oct 14 21:

We need to do a lot of tests before deploying it in the EVM, we need to change some methods and variables in the smart contract

Oct 14 21…Oct 22 21

The hardest part is to connect with it using web3.py, we spend 3 days by trying to connect with it, after that we turn for another plan and we use web3js, so we think to use react to connect with front-end, but after a lot of work we can not success to do that, so we think about using expressjs, it’s the same concept as flask.

Oct 22 21…Oct 29 21:

We have working in the Portfolio Project landing page: it is a webpage that presents information about the project, requiring the visitor to signup, login, Then the user can check the diploma without any requirements of having an account.

The most difficult non-technical challenge you encountered in the project:

For non-technical challenges, we’ve tried to work in a team so we encourage each other to share constructive criticism and praise respectfully. Each individual’s experience and talents play into their unique perspective to tackle problems and tasks. No one’s opinion should be discredited.Our work progressed smoothly because we are using git branches pulling requests and a lot pulling requests and a lot of tests before deployment of smart contract and committing new code. also we think about the processing and progressing as planned , so we split the work among us making sure we discuss every step before hand.

What we learned about yourself as an engineer and how this project informs our engineering path in the future?

Deep understanding about Blockchain:

Now each team member have a good experience working with Ethereum and related blockchain frameworks.

Security and protecting privacy:

working with Ethereum Platform to protect Data of each Diploma.

Deploying Smart Contract:

Learning how to deploy a correct smart contract that serve the project proposal.

Professional api’s

To create an api you should do a lot of work.

Conclusion:

Storage of documents has become a very important thing in our current lifestyle. Also, with this rising importance of documents, the theft and forgery of documents is also increasing day-by- day. So, there is a very great need for the protection and authentication of documents.

Get to Know Our Team:

Rim Joudi , Maroua Alaya

Codes are available on GitHub.

--

--