PS Report - SWAUGAT
PS Report - SWAUGAT
TRADING APP
Submitted by
Swaugat Beura (1901209182)
1
CERTIFICATE
2
DECLARATION
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.
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
Swaugat Beura
Registration No -1901209182
3
ACKNOWLEDGEMENTS
support. I am also thankful to Nishant Dash, Sagarika Mohanty, Pradip Sahoo, Vivek
Swaugat Beura
Registration No -1901209182
4
ABSTRACT
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.
5
LIST OF ABBREVIATIONS
Abbreviation Description
En English
JS JavaScript
TS Typescript
VS Visual Studio
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
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
8
2.3.12 Express Js 29
2.4 Database 31-33
2.4.1. DynamoDB 31
9
CHAPTER 1
INTRODUCTION
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.
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.
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.
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.
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
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.
● 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
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.
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
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
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
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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
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
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
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.
31
fine-grained access control to ensure that only authorized users have access to the data.
2.4.2 MYSQL
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.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.
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
Attached below are some snapshots of the work which I had performed during my
internship.
35
Fig 3.2 CO2 NETWORKS USER WALLET PORTAL
36
Fig 3.4 CO2 NETWORKS BACKEND API TESTING IN POSTMAN
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.
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.
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.
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
[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/
41
Department of Computer Science and Engineering
Silicon Institute of Technology,
Silicon Hills, Bhubaneswar –751024,
Odisha, India
42