0% found this document useful (0 votes)
36 views42 pages

PS Report - SWAUGAT

This document summarizes a project report on a CO2 networks trading platform application. The application allows companies to buy, sell, and trade CO2 emission permits. It uses Node.js and React Native for backend and frontend respectively, ensuring scalability and cross-platform use. Blockchain technology provides transparency and security to transactions.

Uploaded by

Suryanshu Bedi
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
36 views42 pages

PS Report - SWAUGAT

This document summarizes a project report on a CO2 networks trading platform application. The application allows companies to buy, sell, and trade CO2 emission permits. It uses Node.js and React Native for backend and frontend respectively, ensuring scalability and cross-platform use. Blockchain technology provides transparency and security to transactions.

Uploaded by

Suryanshu Bedi
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 42

CO2 NETWORKS - A REAL TIME CARBON

TRADING APP

This report is submitted to


Silicon Institute of Technology, Bhubaneswar

for the evaluation of


Practice School / Industrial Internship
in partial fulfillment of the requirements for the award of the degree of
Bachelor of Technology
in
Computer Science and Engineering

Submitted by
Swaugat Beura (1901209182)

Under the Esteemed Supervision of


Nigamananda Sahoo (Managing Director)
Suryakant Pradhan (Tech Lead & Mentor)
(Squbix Digital Private Limited)

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING


SILICON INSTITUTE OF TECHNOLOGY
SILICON HILLS, BHUBANESWAR – 751024, ODISHA, INDIA
May, 2023

1
CERTIFICATE

Date:- 26/05/2023 Mr. Suryakant Pradhan


Place: Bhubaneswar (Tech Lead)

PS Coordinator PS Advisor External Examiner


II Cell

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING


SILICON INSTITUTE OF TECHNOLOGY
SILICON HILLS, BHUBANESWAR – 751024, ODISHA, INDIA

2
DECLARATION

We hereby certify that:

a. The work contained in the report is original and has been done by me under the
supervision of our supervisor.

b. The work has not been submitted to any other Institute for any degree or diploma.

c. We have conformed to the norms and guidelines given to us by the Project


Review Committee of our department.

d. Whenever we have used materials (data, theoretical analysis and text) from other
sources, we have given due credit to them by citing them in the text of the
project and giving their details in the references.

Date: 26/05/2023

Place: Bhubaneswar, Odisha

Swaugat Beura
Registration No -1901209182

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING


SILICON INSTITUTE OF TECHNOLOGY
SILICON HILLS, BHUBANESWAR – 751024, ODISHA, INDIA

3
ACKNOWLEDGEMENTS

I am extremely grateful to my supervisor, Suryakant Pradhan, for their guidance and

support. I am also thankful to Nishant Dash, Sagarika Mohanty, Pradip Sahoo, Vivek

Sarawgi, and others for their contributions to my work.

I am deeply indebted to Mr. Nigamananda Sahoo for this wonderful opportunity. My

heartfelt thanks also go to my PS advisor, Mrs.Sanghamitra Dash, for their invaluable

guidance. Finally, I want to express my sincere appreciation to my college for their

support throughout this journey.

Swaugat Beura
Registration No -1901209182

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING


SILICON INSTITUTE OF TECHNOLOGY
BHUBANESWAR – 751024

4
ABSTRACT

The CO2 Networks Trading Platform Application is a project aimed at creating an


innovative and efficient solution for facilitating the trading of carbon dioxide (CO2)
emission permits. The application is developed using Node.js as the backend and React
Native as the frontend technology stack, ensuring a scalable and cross-platform user
experience.

This project addresses the growing need for sustainable practices and compliance with
environmental regulations by providing a digital platform for companies and
organizations to buy, sell, and trade CO2 emission permits. By leveraging the power of
blockchain technology, the platform ensures transparency, security, and immutability in
all transactions.

The backend of the application is built using Node.js, a powerful JavaScript runtime
environment, which allows for rapid development and scalability. It enables seamless
integration with various data sources, such as emission registries and third-party
verification systems, ensuring accurate and real-time data for permit trading.

On the frontend, React Native is utilized to develop a mobile application that offers a
user-friendly interface across multiple platforms, including iOS and Android. This
approach allows for efficient development and maintenance while providing a consistent
and intuitive user experience.

Keywords: CO2 NETWORKS APP, CO2 emission permits, CO2 emissions.

5
LIST OF ABBREVIATIONS

(Abbreviations should be alphabetically written)

Abbreviation Description

API Application Programming Interface

AWS Amazon Web Services

En English

DID Decentralized Identifier

JSON JavaScript Object Notation

JS JavaScript

EC2 Elastic Compute Cloud

IAM Identity and Access Management

S3 Simple Storage Service

SDK Software Development Kit

TS Typescript

VS Visual Studio

SNS Simple Notification Service

SQL Structured Query Language

6
LIST OF FIGURES

Page #

Chapter 2.
Figure 2.1 Js logo 14
Figure 2.2 TypeScript logo 16
Figure 2.3 React Js logo 17
Figure 2.4 React Native logo 18
Figure 2.5 AWS EC2 19
Figure 2.6 API Gateway 20
Figure 2.7 AWS Lambda 21
Figure 2.8 AWS Cognito 22
Figure 2.9 AWS SNS 23
Figure 2.10 Dynamo Db logo 31
Figure 2.11 GitLab Logo 33
Figure 2.12 Git and github logo 34
Chapter 3.
Figure 3.1. CO2 user Management Portal 35
Figure 3.2. CO2 Networks User Wallet Portal 36
Figure 3.3. CO2 Backend Repository 36
Figure 3.4. CO2 API Testing in Postman 37
Figure 3.5. CO2 Networks user contribution Infographics 37

7
CONTENTS

CONTENT DETAILS PAGE NO.

Title Page 1

Certificate 2
Declaration 3
Acknowledgements 4
Abstract 5
List of Abbv. 6
List of Figures 7
Contents 8
Chapter 1. Introduction 9 –10

1.1 Introduction 10
1.2 Problem Statement 11
1.3 Objective & Motivation 12
1.4 Proposed Method 12
1.4.1. Reduce cloud provider costs and increase scalability 13
1.5 Summary 13

Chapter 2. Technology Used 14 - 18


2.1 Introduction 14
2.2 UI Development 14
2.2.1. JavaScript 15
2.2.2. TypeScript 16
2.2.3. ReactJs 17
2.2.4. React Native 18
2.3 Backend Development 19-30
2.3.1. AWS EC2 19
2.3.2. AWS API Gateway 20
2.3.3. AWS Lambda Function 21
2.3.4. AWS Cognito 22
2.3.6. Serverless Framework 23
2.3.7. AWS S3 24
2.3.8. AWS CloudWatch 25

2.3.9. AWS IAM 26


2.3.10. AWS SNS 27
2.3.11. NodeJs 28

8
2.3.12 Express Js 29
2.4 Database 31-33

2.4.1. DynamoDB 31

2.5 Version Control 33-34


2.5.1. GitLab 33
2.5.2. GitHub 34
Chapter 3. Experimental Results 35-37
3.1 Results and Discussion 35
Chapter 4. Conclusion and Future Scope 38-40
4.1 Conclusion 38
4.2 Future Scope 39
References 41

9
CHAPTER 1
INTRODUCTION

The CO2 Networks Trading Application is a groundbreaking solution addressing the


urgent global challenge of carbon dioxide (CO2) emissions and facilitating the trade of
emission permits. As society increasingly recognizes the environmental impact of
greenhouse gasses, there is a growing demand for sustainable practices and regulatory
compliance. This application aims to provide a digital platform enabling companies and
organizations to buy, sell, and trade CO2 emission permits, promoting a more sustainable
and responsible approach to environmental stewardship.

Trading CO2 emission permits is crucial for reducing greenhouse gas emissions. These
permits represent the right to emit a specific amount of CO2, and by establishing a
marketplace for their exchange, the CO2 Networks Trading Application empowers
organizations to actively participate in emission reduction efforts. Through the platform,
companies can efficiently trade permits, ensuring that emission allowances are allocated
to those who can utilize them most effectively.

This application leverages cutting-edge technologies, with Node.js as the backend and
React Native as the frontend. Node.js provides a powerful and scalable runtime
environment, facilitating seamless integration with various data sources to ensure accurate
and up-to-date information for permit trading. React Native enables the development of a
mobile application, offering a consistent user experience across different platforms.
Key features of the CO2 Networks Trading Application include user registration and
authentication, emission permit listings, search and filtering capabilities, transaction
management, real-time data updates, notifications and alerts, as well as analytics and
reporting functionalities. These features collectively create a streamlined and efficient
trading experience, empowering users to make informed decisions and actively engage in
sustainable practices.

By utilizing the CO2 Networks Trading Application, organizations and individuals can
make significant contributions to the global effort of reducing CO2 emissions. The

10
platform offers a convenient and secure marketplace for trading emission permits,
facilitating the transition towards a more sustainable and environmentally conscious
future. Users can play their part in mitigating climate change and creating a healthier
planet for future generations.

1.1. PROBLEM STATEMENT

The pressing global problem of carbon dioxide (CO2) emissions has become a significant
concern due to its contribution to climate change and environmental degradation. To
mitigate these adverse effects, governments and regulatory bodies have introduced
emission trading systems and permit schemes that allow companies and organizations to
buy, sell, and trade CO2 emission permits. However, the current mechanisms for trading
these permits are often inefficient, lacking transparency and accessibility.
One of the main challenges is the absence of a centralized platform that enables seamless
and transparent trading of emission permits. Many existing methods rely on manual
processes, paper-based documentation, and fragmented systems, leading to delays, errors,
and difficulties in tracking and verifying transactions. This not only hampers the overall
efficiency of the trading process but also limits market access for potential buyers and
sellers.
To address these challenges, there is an urgent need for a digital application that leverages
modern technologies, such as blockchain, to create a centralized, transparent, and secure
platform for CO2 emission permit trading. Such an application would streamline the
trading process, ensure real-time data updates, facilitate efficient buyer-seller matching,
and provide a trusted environment for participants to engage in emissions trading with
confidence.

1.2.OBJECTIVE AND MOTIVATION

The objective of the CO2 Networks Trading Application is to create a digital platform that
facilitates the efficient and transparent trading of CO2 emission permits. The application
aims to provide a centralized marketplace where organizations and individuals can buy,
sell, and trade emission permits, promoting sustainable practices and compliance with
environmental regulations. By offering a user-friendly and secure platform, the objective
is to encourage active participation in emission reduction efforts and contribute to a more

11
sustainable future.

The motivation behind developing the CO2 Networks Trading Application stems from the
urgent need to address the global issue of carbon dioxide (CO2) emissions. As the world
becomes increasingly aware of the environmental impact of greenhouse gases, there is a
growing demand for effective solutions that enable organizations to actively participate in
emission reduction initiatives. The application is motivated by the desire to streamline the
trading process for CO2 emission permits, removing barriers and inefficiencies that
currently hinder the adoption of sustainable practices.

The motivation also stems from the recognition that existing trading processes for CO2
emission permits are fragmented, manual, and lack transparency. There is a need to
leverage technology to create a secure and efficient platform that integrates real-time data,
facilitates seamless transactions, and ensures trust among market participants. By
providing such a platform, the motivation is to empower organizations and individuals to
actively engage in emission reduction efforts, contribute to a greener future, and meet
their sustainability goals.

Overall, the objective and motivation behind the CO2 Networks Trading Application are
to provide a user-friendly, secure, and efficient platform that promotes sustainable
practices, enables transparent and seamless trading of CO2 emission permits, and
encourages active engagement in emission reduction initiatives.

1.3 PROPOSED METHOD.

1.3.1 Reducing Cloud Provider Costs and Increasing Scalability

Here are a few ways that you can reduce costs and increase scalability when using
a cloud provider:

Use spot instances: These are instances that are available at a discount, but can be
terminated by the cloud provider when they are needed for other tasks. By using spot
instances, you can save significantly on compute costs.

Use auto-scaling: Many cloud providers offer the ability to scale up or down the number
of instances in your environment based on demand. This can help you to avoid

12
overpaying for resources that are not being fully utilized.

Use managed services: Rather than running your own servers, consider using managed
services for tasks such as databases, messaging, and caching. These services can be more
cost-effective and easier to scale than running your own infrastructure.

Use reserved instances: If you know that you will need a certain number of instances for a
longer period of time, consider purchasing reserved instances. These can offer a
significant discount compared to on-demand instances.

Optimize your workloads: Look for ways to optimize the resources that you are using,
such as by using smaller instance types or by optimizing the way that you are using your
instances. This can help you to get more value out of the resources that you are paying for.

1.4 SUMMARY
In this chapter we discussed about:
● The basic objective of CO2 NETWORKS APP.

● Motivation behind the use of CO2 Networks app in real world.

● Methods for reducing cloud provider costs and increasing scalability.

13
CHAPTER 2
2.1 INTRODUCTION

CO2 NETWORKS APP uses technologies such as React.js for web development, React
Native for app development, while the backend is made using NodeJS, Express and
Serverless Framework. The database it makes use of is MySQL and DynamoDB.

2.2 UI DEVELOPMENT

2.2.1 JAVASCRIPT

Fig 2.1 Js logo

JavaScript (often shortened to JS) is a lightweight, interpreted, object-oriented language


with first-class functions, and is best known as the scripting language for Web pages, but
it's used in many non-browser environments as well. It is a prototype-based,
multi-paradigm scripting language that is dynamic, and supports object-oriented,
imperative, and functional programming styles. JavaScript runs on the client-side of the
web, which can be used to design / program how the web pages behave on the occurrence
of an event. JavaScript is an easy-to-learn and also powerful scripting language, widely
used for controlling web page behaviour. Contrary to popular misconception, JavaScript is
not "Interpreted Java". In a nutshell, JavaScript is a dynamic scripting language
supporting prototype-based object construction. The basic syntax is intentionally similar
to both Java and C++ to reduce the number of new concepts required to learn the
language. Language constructs, such as if statements, for and while loops, and switch and
14
try ... catch blocks function the same as in these languages (or nearly so). JavaScript can
function as both a procedural and an object-oriented language. Objects are created
programmatically in JavaScript, by attaching methods and properties to otherwise empty
objects at run time, as opposed to the syntactic class definitions common in compiled
languages like C++ and Java. Once an object has been constructed it can be used as a
blueprint (or prototype) for creating similar objects. JavaScript's dynamic capabilities
include runtime object construction, variable parameter lists, function variables, dynamic
script creation (via eval), object introspection (via for ... in), and source code recovery
(JavaScript programs can decompile function bodies back into their source text). What
JavaScript implementations are available? The Mozilla project provides two JavaScript
implementations. The first-ever JavaScript was created by Brendan Eich at Netscape and
has since been updated to conform to ECMA-262 Edition 5 and later versions. This
engine, code-named Spider Monkey, is implemented in C/C++. The Rhino engine, created
primarily by Norris Boyd (also at Netscape) is a JavaScript implementation written in
Java. Like Spider Monkey, Rhino is ECMA-262 Edition 5 compliant. Several major
runtime optimizations such as Trace Monkey (Firefox 3.5), Jäger Monkey (Firefox 4), and
Ion Monkey were added to the Spider Monkey JavaScript engine over time. Work is
always ongoing to improve JavaScript execution performance.

Besides the above implementations, there are other popular JavaScript engines such as:-

● Google's V8, which is used in the Google Chrome browser and recent versions of
Opera browser. This is also the engine used by Node.JS.

● The Java Script Core (Squirrel Fish/Nitro) is used in some Web Kit browsers such as
Apple Safari.

Caravan in old versions of Opera.

● The Chakra engine is used in Internet Explorer (although the language it implements is
formally called "JScript" to avoid trademark issues). Each of Mozilla's JavaScript engines
exposes a public API that application developers can use to integrate JavaScript into their
software. By far, the most common host environment for JavaScript is web browsers. Web
browsers typically use the public API to create host objects responsible for reflecting the
DOM into JavaScript. Another common application for JavaScript is as a (Web)
server-side scripting language. A JavaScript web server would expose host objects

15
representing HTTP request and response objects, which could then be manipulated by a
JavaScript program to dynamically generate web pages. Node.JS is a popular example of
this.

2.2.2 TYPESCRIPT

Fig 2.2 Ts logo

TypeScript is a programming language that is a superset of JavaScript. It adds optional


static typing and class-based object-oriented programming to JavaScript. This allows
developers to catch errors earlier in the development process and write more organized
and maintainable code. TypeScript is commonly used in large-scale projects and is
supported by various frameworks and libraries such as Angular and React.

There are several reasons why one might choose to use TypeScript:

1. Improved code reliability: TypeScript adds type checking to your code, which helps
catch errors before they become issues. This can lead to more reliable and robust code.

2. Improved developer productivity: TypeScript can help developers avoid common


coding mistakes, as well as make it easier to find and fix issues when they do arise.

3. Improved code readability: By providing type annotations, TypeScript can make it


easier for other developers to understand and work with your code.

4. Stronger object-oriented programming support: TypeScript includes features like


classes, interfaces, and inheritance, which can be useful for those working on larger,
object-oriented projects.

16
5. Better integration with other tools: TypeScript can be used with a variety of tools and
frameworks, including Angular, React, and Vue.js, which can make it easier to build and
maintain large-scale web applications.

Overall, TypeScript can help developers write cleaner, more reliable code, and make it
easier to work on complex projects with a large team of developers.

2.2.3 REACT.JS

Fig 2.3 React logo

React is a JavaScript library for building user interfaces. It was developed by Facebook,
and is often used for building single-page applications and mobile applications.

React allows developers to create reusable UI components. This means that instead of
building a UI from scratch each time it is needed, a developer can use a pre-built React
component. This can make the development process faster and more efficient.

One of the key benefits of React is its ability to update the user interface efficiently. When
data in a React application changes, the UI is automatically updated to reflect the new
data. This helps to ensure that the UI is always in sync with the underlying data, which
can make for a better user experience.

React is also known for its performance. It uses a virtual DOM (Document Object Model)
to minimize the number of DOM manipulations required when the UI is updated. This can
help to improve the performance of a React application, particularly on mobile devices.

17
Overall, React is a popular choice for building user interfaces because of its reusable
components, efficient rendering, and good performance.

2.2.3 REACT.JS

Fig 2.3 React Native logo

React Native is a widely used open-source framework for building mobile applications.
Developed by Facebook, it enables developers to create native mobile apps using
JavaScript and React. With React Native, developers can write a single codebase that can
be deployed on both iOS and Android platforms, saving time and effort.The framework
utilizes a declarative programming style, where developers describe the desired user
interface and React Native takes care of rendering it into native components. This
approach allows for a smoother and more efficient user experience.React Native also
provides access to native APIs, ensuring that developers can leverage the full capabilities
of the underlying platform. It offers a vast ecosystem of pre-built components, libraries,
and tools that streamline the development process.Not only does React Native enable
rapid development, but it also allows for hot-reloading, which means developers can see
the changes made in real-time without recompiling the entire application. This feature
significantly speeds up the development and debugging process.Overall, React Native is a
powerful framework that empowers developers to build robust and performant mobile
applications with a single codebase, making it a preferred choice for many app
developers.

18
2.3 BACKEND

2.3.1 AWS EC2

Figure 2.5 AWS EC2

Amazon Elastic Compute Cloud (EC2) is a web service that provides resizable compute
capacity in the cloud. It is a part of the Amazon Web Services (AWS) suite of services and
is designed to make web-scale cloud computing easier for developers.

EC2 allows users to rent virtual machines (VM), called instances, on which they can run
their own applications. These instances come in various sizes and configurations,
allowing users to choose the one that best fits their needs. Users can also choose the
operating system, networking, and security configurations of their instances.

EC2 instances can be launched on-demand, meaning users only pay for the time they use
the instance. This is useful for users who need to quickly scale their computing needs up
or down. EC2 also offers the ability to reserve instances, which allows users to save
money by paying upfront for a certain amount of computing time.

One of the main benefits of EC2 is its flexibility. Users can easily scale their computing
needs up or down based on demand, and they can choose from a variety of instance types
and configurations to fit their specific needs. EC2 also offers a wide range of tools and
features to help users manage their instances, including monitoring, auto-scaling, and load
balancing.

EC2 is a popular choice for companies looking to host websites, applications, or other
services in the cloud.

19
2.3.2 AWS API GATEWAY

Fig. 2.5 Route from AWS API Gateway to other AWS Services

Amazon API Gateway is a fully managed service that makes it easy for developers to
create, publish, maintain, monitor, and secure APIs at any scale. With API Gateway, you
can create RESTful APIs and WebSocket APIs that enable real-time two-way
communication applications.

API Gateway handles all of the tasks involved in accepting and processing API requests,
including traffic management, authorization and access control, monitoring, and API
version management. It also helps you to create and maintain API documentation, as well
as to set up and operate a custom domain name for your APIs.

API Gateway provides a variety of security options, including AWS Identity and Access
Management (IAM) and Amazon Cognito user pools to authenticate and authorize API
requests. It also supports OAuth 2.0, SAML, and OpenID Connect for federated identity
management.

API Gateway integrates with other AWS services, such as Amazon Lambda, Amazon
Elastic Container Service, and Amazon EC2, to allow you to build and deploy APIs that
connect to a variety of back-end services and resources. It also integrates with third-party
services and on-premises resources through the use of custom connectors and integration
adapters.

In summary, Amazon API Gateway is a powerful tool for building and deploying APIs at

20
scale, with a range of features and integrations to help you manage and secure your APIs
and connect them to a variety of back-end services and resources.

2.3.3 AWS LAMBDA

AWS Lambda Functions are a service provided by Amazon Web Services (AWS) that
allows users to run code without the need for a dedicated server or infrastructure. This
means that users can execute code in response to specific triggers, such as the creation of
a new file in an Amazon S3 bucket or the receipt of a message on an Amazon Simple
Queue Service queue.

AWS Lambda Functions are event-driven, meaning that they are only activated when a
specific event occurs. This means that users do not have to worry about maintaining
servers or infrastructure, as the Lambda Function is only running when it is needed. This
also means that users only pay for the compute time that their functions use, rather than
paying for the cost of maintaining a server 24/7.

AWS Lambda Functions are written in a variety of languages, including Python, Node.js,
and C#, and are executed in a secure, isolated environment. They can also be integrated
with other AWS services, such as Amazon S3, Amazon DynamoDB, and Amazon API
Gateway, allowing users to create powerful, scalable, and flexible applications.

Overall, AWS Lambda Functions provide a convenient and cost-effective way for users to
run code in response to specific events, without the need for dedicated servers or
infrastructure.

There are several reasons why we use AWS Lambda Functions:

1. Cost efficiency: AWS Lambda functions only charge for the execution time of
the code, so you only pay for the resources used when the function is running. This can

21
lead to significant cost savings compared to hosting your own servers or using other cloud
services.

2. Scalability: AWS Lambda automatically scales your functions to meet the


demands of incoming requests, so you don't have to worry about managing the underlying
infrastructure.

3. Simplicity: AWS Lambda allows you to focus on writing code, rather than
worrying about the underlying infrastructure. You can write your code in a variety of
languages and deploy it quickly, without the need to worry about setting up and managing
servers.

4. Integration with other AWS services: AWS Lambda integrates seamlessly with
a variety of other AWS services, such as Amazon S3, Amazon DynamoDB, and Amazon
SNS, making it easy to build complex, event-driven applications.

5. Serverless architecture: AWS Lambda allows you to build and deploy


applications without the need to manage servers, making it a great option for building
microservices and other types of distributed systems.

6. Improved reliability: With AWS Lambda, you don't have to worry about
infrastructure failures or maintenance issues, as the service automatically handles these
tasks for you. This can help improve the reliability of your applications.

2.3.4 AWS COGNITO

Amazon Cognito is a user identity and data synchronization service that helps developers
securely manage and synchronize user data across devices and across applications. It
provides a simple, secure, and scalable solution for managing user identities and data,
allowing developers to focus on building their applications rather than worrying about the
complexities of user management. One of the main features of Amazon Cognito is its

22
ability to handle user registration, authentication, and authorization. It provides a simple,
secure, and flexible way for developers to manage user accounts and access to their
applications. It supports multiple authentication methods, including social logins,
multifactor authentication, and custom authentication providers. It also provides features
such as account recovery, password resets, and secure data storage.

In addition to user management, Amazon Cognito also provides data synchronization


capabilities, allowing developers to synchronize user data across devices and applications.
This can be useful in scenarios where users need to access their data from multiple
devices or platforms, such as a smartphone and a laptop. Amazon Cognito makes it easy
to synchronize user data across devices, ensuring that users have access to the most
up-to-date information regardless of where they are accessing it from.

Another key feature of Amazon Cognito is its ability to handle large scale user
management and data synchronization needs. It is designed to scale automatically as user
numbers and data volume increase, making it suitable for applications with millions of
users. It is also highly available, with built-in redundancy and failover capabilities to
ensure that users have access to their data even in the event of an outage or other
disruption.

Overall, Amazon Cognito is a powerful and flexible tool for developers looking to
manage user identities and data synchronization needs. It provides a simple, secure, and
scalable solution that allows developers to focus on building their applications rather than
worrying about the complexities of user management.

2.3.5 AWS SNS

Amazon Simple Notification Service (SNS) is a fully managed messaging service that
enables you to send notifications to various endpoints, including mobile devices, email
addresses, and AWS Lambda functions. It allows you to scale your messaging capabilities

23
and reach a wide range of customers across various platforms.

One of the key benefits of SNS is that it can send notifications to multiple endpoints with
a single API call, which makes it easier to manage and scale your messaging
infrastructure. You can also set up rules to filter or transform messages based on specific
criteria, such as the type of device or the content of the message.

SNS is highly reliable and can handle millions of messages per second with low latency. It
also supports various message formats, including SMS, email, and push notifications,
making it easy to send notifications to a wide range of devices and applications.

In addition to its messaging capabilities, SNS also integrates with other AWS services,
such as AWS Lambda and Amazon Kinesis. This enables you to trigger serverless
functions or stream data in real-time based on specific events or conditions.

Overall, Amazon SNS is a powerful and flexible messaging service that can help you
reach and engage with your customers across various platforms and devices. Whether you
need to send notifications, alerts, or other types of messages, SNS can help you scale your
messaging infrastructure and deliver reliable and timely messages to your customers.

2.3.6 SERVERLESS FRAMEWORK

The Serverless Framework is a tool that allows developers to build, deploy, and manage
serverless applications on various cloud platforms. It simplifies the process of creating,
testing, and deploying serverless functions by providing a set of templates and tools that
abstract away the underlying infrastructure and make it easier to focus on writing code.

Serverless applications are built around small, independent functions that are triggered by
specific events, such as a user uploading a file or a timer going off. These functions are
executed in a managed environment, meaning that the cloud provider handles the
infrastructure and scaling for you. This means that you only pay for the resources you use,

24
and your application is automatically scalable.

The Serverless Framework provides a way to define these functions and the events that
trigger them in a configuration file called a serverless.yml. This file also allows you to
define other resources, such as database connections, authentication methods, and
environment variables.

Once your serverless application is defined in the serverless.yml file, you can use the
Serverless Framework to deploy it to a cloud provider of your choice. The framework
handles the process of uploading your code, creating the necessary infrastructure, and
configuring the triggers and events for your functions.

In addition to deployment, the Serverless Framework also provides tools for monitoring
and debugging your serverless application. You can view logs, set up alerts, and test your
functions locally before deploying them to the cloud.

Overall, the Serverless Framework makes it easier to build, deploy, and manage serverless
applications by providing a set of tools and templates that abstract away the underlying
infrastructure and focus on the code. It helps developers build scalable, cost-effective
applications that can be easily modified and updated as needed.

2.3.7 AWS S3

Amazon Simple Storage Service (S3) is an object storage service that offers
industry-leading scalability, data availability, security, and performance. This means that
you can store and retrieve any amount of data, at any time, from anywhere on the web. S3
is designed to provide 99.999999999% durability, and stores data for millions of
applications for companies all around the world.

One of the key features of S3 is its integration with other AWS services. For example, you
can use S3 as the storage layer for a content delivery network (CDN) like Amazon
CloudFront, or as the storage for data backups and disaster recovery. You can also use S3

25
in conjunction with other AWS services like Amazon EMR (Elastic MapReduce) for big
data processing, Amazon Redshift for data warehousing, and AWS Lambda for serverless
computing. S3 is a pay-as-you-go service, meaning you only pay for the storage you use.
You can also choose from different storage classes that are optimized for different use
cases, such as standard for frequently accessed data, and intelligent-tiering for data with
unknown or changing access patterns.

Overall, S3 is a reliable and scalable storage solution that can handle a wide variety of
data storage and processing needs.

2.3.8 AWS CloudWatch

Amazon CloudWatch is a monitoring service for AWS resources and the applications you
run on the Amazon Web Services (AWS) cloud. It provides visibility into resource and
application performance, helps you to identify and troubleshoot issues, and enables you to
monitor and optimize resource utilization.

CloudWatch provides data and operational insights for various resources such as Amazon
Elastic Compute Cloud (EC2) instances, Amazon Relational Database Service (RDS) DB
instances, and Amazon Simple Storage Service (S3) buckets. You can use CloudWatch to
collect and track metrics, collect and monitor log files, and set alarms.

CloudWatch can monitor resources such as EC2 instances and RDS DB instances in
real-time, with data points that are emitted every minute. You can also use CloudWatch to
monitor custom metrics generated by your applications and services, as well as any log
files your applications generate.

One of the key benefits of CloudWatch is its ability to set alarms that will automatically
trigger actions when certain thresholds are breached. For example, you can use
CloudWatch to set an alarm that will automatically stop an EC2 instance if it is
underutilized for an extended period of time, or to send a notification if the CPU usage of

26
an RDS instance exceeds a certain threshold.

Overall, CloudWatch is a powerful and feature-rich monitoring service that provides


real-time visibility into your AWS resources and applications

2.3.9 AWS IAM

Amazon Web Services (AWS) Identity and Access Management (IAM) is a web service
that helps you securely control access to AWS resources. IAM enables you to create and
manage AWS users and groups, and use permissions to allow and deny their access to
AWS resources.

One of the key benefits of using IAM is that it allows you to create multiple IAM users
for your AWS account, each with their own set of security credentials. This enables you to
give different IAM users different permissions to access AWS resources, and helps to
ensure that the actions of one user do not impact the resources of another.

IAM also enables you to create and manage AWS roles, which are a way to grant
permissions to AWS resources. Roles are not associated with specific users or groups, and
are intended to be assumed by AWS services, applications, or IAM users.

IAM also provides features such as multi-factor authentication (MFA) to help you
increase the security of your AWS resources, and allows you to set up permissions
policies that specify exactly which actions are allowed or denied on which resources.

Overall, IAM is an essential service for securing and managing access to your AWS
resources, and helps you to ensure that your AWS environment is secure and compliant.

27
2.3.10 Nodejs

Node.js is an open-source, cross-platform JavaScript runtime environment built on


Chrome's V8 JavaScript engine. It allows developers to run JavaScript code outside of a
web browser, enabling server-side and command-line scripting. Here are some key points
about Node.js.

● Asynchronous and Event-driven: Node.js utilizes a non-blocking, event-driven


architecture. This means that it can handle multiple concurrent operations
efficiently without blocking other tasks. It is particularly well-suited for handling
high-traffic applications that require real-time communication and responsiveness.
● Server-side JavaScript: Traditionally, JavaScript was primarily used on the
client-side to enhance web pages. However, Node.js extends the use of JavaScript
to the server-side, allowing developers to write full-stack applications entirely in
JavaScript. This unification of the development language simplifies code sharing
and speeds up development.
● NPM (Node Package Manager): Node.js comes bundled with NPM, a powerful
package manager that provides access to a vast ecosystem of reusable code
modules. NPM allows developers to easily install, manage, and share packages,
making it convenient to incorporate third-party libraries and frameworks into their
projects.
● Scalability and Performance: Node.js is highly scalable due to its non-blocking I/O
model, which allows it to handle a large number of concurrent connections
efficiently. Additionally, its lightweight and event-driven architecture contribute to
high performance and responsiveness, making it suitable for building applications
that need to handle heavy loads.
● Extensive Library Support: Node.js has a rich collection of libraries and
frameworks that facilitate various development tasks. Express.js, for example, is a

28
popular web application framework that simplifies building RESTful APIs and
web servers. Other libraries like Socket.IO enable real-time bidirectional
communication between clients and servers.
● Command-line Tools: Node.js offers command-line tools that make it easy to build
scripts and automate tasks on the command line. This functionality is useful for
tasks such as file manipulation, process management, and build automation.

2.3.11.ExpressJs

Express.js is a lightweight and flexible web application framework for Node.js. It


provides a minimalistic and unopinionated approach to building web applications and
APIs, making it popular among developers for its simplicity and ease of use. Here are
some key points about Express.js:

● Routing: Express.js allows developers to define routes for handling HTTP


requests. It provides a simple and intuitive API for defining route handlers based
on HTTP methods and URL patterns. This makes it easy to create endpoints for
handling various types of requests.
● Middleware: One of the core features of Express.js is its middleware system.
Middleware functions can be used to perform tasks such as logging, parsing
request bodies, handling authentication, and more. Express.js allows developers to
easily add, remove, or chain multiple middleware functions to customize the
request/response flow.
● Template Engines: Express.js supports various template engines like Pug, EJS, and
Handlebars. These template engines enable developers to dynamically generate
HTML pages by combining data with predefined templates. This makes it easier to
create dynamic web pages or render views for server-side rendering.
● Error Handling: Express.js provides mechanisms for handling errors in a

29
centralized and organized manner. Developers can define error-handling
middleware to catch and process errors that occur during the request-response
cycle. This allows for better error management and graceful handling of
unexpected issues.
● Extensibility: Express.js is highly extensible, and developers can leverage a vast
ecosystem of third-party middleware and plugins to enhance its functionality.
These modules provide additional features like session management,
authentication strategies, database integration, and more, allowing developers to
quickly add desired functionality to their applications.
● Scalability: Express.js is known for its lightweight and minimalistic nature, which
makes it suitable for building scalable applications. It allows developers to
structure their code in a modular and organized manner, making it easier to
manage and scale as the application grows.

Overall, Express.js is a versatile and powerful framework for building web applications
and APIs with Node.js. Its simplicity, flexibility, and extensive community support have
made it a popular choice among developers worldwide.

30
2.4 DATABASE

2.4.1 DYNAMODB

Fig 2.10 DynamoDblogo

DynamoDB is a fully managed NoSQL database service that provides fast and predictable
performance with seamless scalability. It was developed and is maintained by Amazon
Web Services (AWS).

One of the main features of DynamoDB is its ability to scale horizontally. This means that
as the amount of data and the number of requests to the database increases, the database
can easily and automatically scale up to meet the demand. This is done through the use of
sharding, where the data is split into smaller pieces and distributed across multiple
servers. This ensures that the database can handle a large amount of traffic without
experiencing any performance issues.

Another key feature of DynamoDB is its ability to handle a wide range of workloads. It is
designed to be highly flexible and can be used for a variety of applications, including web
and mobile applications, gaming, IoT, and more. It can also handle both read-intensive
and write-intensive workloads, making it a good choice for applications that require
real-time data updates.

One of the main advantages of DynamoDB is its low latency. It is designed to provide fast
and consistent performance, with an average latency of just a few milliseconds. This
makes it ideal for applications that require real-time data access and updates.

Another benefit of DynamoDB is its strong security features. It is built on top of


Amazon's infrastructure, which is designed to be highly secure and compliant with
various industry standards. It also offers encryption at rest and in transit, as well as

31
fine-grained access control to ensure that only authorized users have access to the data.

Overall, DynamoDB is a powerful and reliable NoSQL database service that is


well-suited for a wide range of applications and workloads. Its ability to scale horizontally
and handle a wide range of workloads, combined with its low latency and strong security
features, make it an attractive option for businesses looking to build scalable and reliable
applications.

2.4.2 MYSQL

MySQL is a popular open-source relational database management system (RDBMS) that


is used to store and organize data. It is developed, distributed, and supported by Oracle
Corporation.

A database is a collection of data that is organized in a specific manner, typically stored in


tables. Each table consists of rows (also known as records or tuples) and columns (also
known as fields or attributes). The columns define the types of data that can be stored in
the table, while the rows contain the actual data.

Relational databases like MySQL use Structured Query Language (SQL) to manipulate
the data stored in the tables. SQL is a standard programming language used to create,
modify, and query databases.

MySQL is known for its speed, reliability, and ease of use. It is widely used in web
applications, and is also used by many popular websites, including Facebook, Twitter, and
YouTube.

There are several editions of MySQL available, including the open-source MySQL
Community Server and the proprietary MySQL Enterprise Edition. The Community
Server is freely available and is suitable for most applications, while the Enterprise
Edition includes additional features and is intended for mission-critical applications.

32
MySQL can be used on a variety of operating systems, including Windows, macOS, and
Linux. It is available in a number of different languages, including English, Spanish,
French, and Chinese.

Overall, MySQL is a powerful and reliable tool for storing and organizing data, and is an
essential component of many modern applications.

2.5 VERSION CONTROL

2.5.1 GITLAB

GitLab Inc. is the open-core company that provides GitLab, the DevOps platform that
combines the ability to develop, secure, and operate software in a single application The
open-source software project was created by a Ukrainian developer Dmitriy Zaporozhets
and Dutch developer Sytse Sijbrandij.

Since its founding, GitLab Inc. has been centred around remote work. GitLab has an
estimated 30 million registered users, with 1 million being active license users.

The code was originally written in Ruby, with some parts later rewritten in Go, initially as
a source code management solution to collaborate within a team on software
development. It later evolved to an integrated solution covering the software development
life cycle, and then to the whole DevOps life cycle. The current technology stack includes
Go, Ruby on Rails, and Vue.JS.

It follows an open-core development model where the core functionality is released under
an open-source license while the additional functionality such as code owners, multiple
issue assignees, dependency scanning and insights are under a proprietary license.

33
GitLab's application offers functionality to collaboratively plan, build, secure, and deploy
software as a complete DevOps Platform. GitLab is highly scalable and can be hosted
on-premises or on cloud storage. It also includes a wiki, issue-tracking, IDE, and CI/CD
pipeline features.

GitLab, like GitHub, also offers a free GitLab Pages product for hosting static web pages
(that can be automatically built on GitLab with Hugo, Jekyll or any other static site
generator), with optional Let's Encrypt for HTTPS support since version 12.1.

GitLab allows all repositories to be up to 10 gigabytes in size. GitLab currently does not
have any limits on how large a single file can be, as long as it stays under the 10-gigabyte
limit.

2.5.2 GIT & GITHUB

Fig 2.13 GIT & GITHUB logo

Git is a version control system that helps developers track and manage changes to their
code. It allows them to create different versions of their code, called "branches," and
merge those changes back into the main codebase. This helps developers work on
different features or fix bugs without affecting the main codebase, and also enables them
to revert back to previous versions if necessary.

GitHub is a cloud-based platform that allows developers to host and share their code
repositories. It also provides tools for collaboration, such as project management and code
review. Developers can use GitHub to create public or private repositories, invite other
developers to collaborate, and track and resolve issues within their code. GitHub also
allows developers to showcase their work to the public and contribute to open-source
projects.

34
CHAPTER 3

3.1 RESULTS AND DISCUSSION

Attached below are some snapshots of the work which I had performed during my
internship.

CO2 ADMIN PANEL INTEGRATED WITH BACKEND

Fig 3.1 CO2 NETWORKS USER MANAGEMENT PORTAL

35
Fig 3.2 CO2 NETWORKS USER WALLET PORTAL

Fig 3.3 CO2 NETWORKS BACKEND REPOSITORY

36
Fig 3.4 CO2 NETWORKS BACKEND API TESTING IN POSTMAN

Fig 3.5 CO2 NETWORKS BACKEND CONTRIBUTION INFOGRAPHICS

37
CHAPTER 4

4.1 CONCLUSION

In conclusion, the CO2 Networks Trading Application presents a significant step forward
in addressing the global challenge of carbon dioxide (CO2) emissions and the need for a
streamlined platform for trading emission permits. By providing a digital marketplace for
organizations and individuals to buy, sell, and trade CO2 emission permits, the application
promotes sustainable practices and enables compliance with environmental regulations.

Through the utilization of cutting-edge technologies such as Node.js for the backend and
React Native for the frontend, the application offers a scalable, efficient, and
cross-platform solution. It empowers users to actively participate in emission reduction
efforts by facilitating the allocation and trading of CO2 emission permits in a secure and
transparent manner.

The motivation behind the CO2 Networks Trading Application stems from the urgency to
mitigate the environmental impact of greenhouse gases. The objective is to streamline the
trading process, overcome existing barriers, and foster trust among market participants.
By providing real-time data integration, notifications, and analytics, the application
empowers users to make informed decisions and engage in sustainable practices.

The integration of blockchain technology ensures transparency, security, and immutability


in all transactions, enhancing the credibility of the permit trading process. This technology
enables the creation of an immutable ledger, recording every transaction and providing
traceability, which contributes to building trust and integrity within the trading ecosystem.

By facilitating a centralized marketplace and offering features such as search and filtering,
38
transaction management, and real-time updates, the CO2 Networks Trading Application
creates an environment that encourages active participation, compliance, and
accountability. This application plays a crucial role in accelerating the global effort to
reduce CO2 emissions and create a sustainable future for generations to come.

In summary, the CO2 Networks Trading Application addresses the challenges associated
with CO2 emission permit trading, providing a comprehensive solution that fosters
sustainability, efficiency, and transparency. By leveraging innovative technologies and
empowering users, this application contributes to a greener and more responsible
approach to environmental stewardship.

4.2 FUTURE SCOPE

The CO2 Networks Trading Application has significant potential for future growth and
development, offering several avenues for expansion and enhancement. Some of the key
future scopes for the application are:

Global Expansion: Currently, the application can focus on serving a specific region or
market. However, there is an opportunity to expand its reach and cater to a broader global
audience. By incorporating support for multiple languages, currencies, and regulatory
frameworks, the application can become a truly global platform for CO2 emission permit
trading.

Integration with Carbon Offset Projects: The application can explore partnerships with
carbon offset projects and initiatives. By integrating with verified carbon offset programs,
users could have the option to trade not only CO2 emission permits but also carbon
credits generated from sustainable projects. This expansion would provide a more
comprehensive solution for organizations and individuals looking to offset their
emissions.

39
Advanced Analytics and Reporting: Enhancing the analytics and reporting capabilities of
the application can provide valuable insights to users. By incorporating advanced data
analysis techniques and visualizations, the platform can help users understand their
emissions profile, identify emission reduction opportunities, and track progress towards
sustainability goals. This would enable users to make data-driven decisions and optimize
their environmental impact.

Integration with IoT and Sensors: Integrating the CO2 Networks Trading Application with
Internet of Things (IoT) devices and environmental sensors could enable real-time
monitoring and reporting of emissions. This integration would enhance the accuracy and
reliability of emission data, facilitate automated compliance checks, and provide users
with a more comprehensive and dynamic trading experience.

Collaboration with Government and Regulatory Bodies: Collaborating with government


agencies and regulatory bodies can strengthen the application's credibility and adoption.
By aligning with existing regulations and working closely with policymakers, the
platform can become an authorized marketplace for emission permits, fostering greater
trust and participation from market stakeholders.

Education and Awareness Initiatives: The application can incorporate educational


resources and awareness campaigns to promote understanding of CO2 emissions,
sustainable practices, and the benefits of trading emission permits. By providing access to
informative content, webinars, and community forums, the platform can facilitate
knowledge sharing, encourage engagement, and foster a sense of environmental
responsibility among users.

Overall, the future scope of the CO2 Networks Trading Application lies in its ability to
evolve as a comprehensive and dynamic platform that caters to the changing needs of the

40
market. By embracing technological advancements, expanding its reach, and fostering
collaborations, the application can continue to play a pivotal role in facilitating emission
reduction efforts and promoting a sustainable future.

REFERENCES

[1] Slim Template. Available: http://slim-lang.com/

[2] https://javascript.info/

[3] https://sass-lang.com/

[4] https://rubyonrails.org/

[5] https://aws.amazon.com/

[6] https://en.wikipedia.org/wiki/Amazon_Web_Services

[7] https://code.visualstudio.com/

[8] https://about.gitlab.com/

[9] DynamoDb Documentation. Available: https://aws.amazon.com/pm/dynamodb/

[10] Amazon Web Services documentation, https://docs.aws.amazon.com

41
Department of Computer Science and Engineering
Silicon Institute of Technology,
Silicon Hills, Bhubaneswar –751024,
Odisha, India

42

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy