0% found this document useful (0 votes)
73 views87 pages

Final Documentation

The document describes a project called RewardPlast that aims to encourage plastic recycling by providing rewards. The project uses a website to allow users to register and submit information about plastic recycled. Users are given unique IDs and rewards are distributed periodically based on recycling amounts or other criteria.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
73 views87 pages

Final Documentation

The document describes a project called RewardPlast that aims to encourage plastic recycling by providing rewards. The project uses a website to allow users to register and submit information about plastic recycled. Users are given unique IDs and rewards are distributed periodically based on recycling amounts or other criteria.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 87

A REPORT ON PROJECT WORK TITLED

REWARDPLAST-TURNING THE TRASH INTO TREASURE

SUBMITTED BY

PROJECT ASSOCIATES

IN FULFILMENT OF REQUIREMENTS FOR THE AWARD OF

DIPLOMA IN
COMPUTER ENGINEERING

T.SAI SANKAR(21010-CM-109) T.JAYARAJ(21010-CM-107)

K.LIKITH SAI KUMAR(21010-CM-071) K.SAMPATH KUMAR (21010-CM-067)

S.KALYAN KUMAR(21010-CM-124) N.SAI KUMAR(21010-CM-108)

U.RAJASRI(21010-CM-129) M.JESHIKA(21010-CM-102)

G.RAJAMANI(21045-CM-015)

UNDER THE ESTEEMED GUIDENCE OF

SMT.T.PRATHYUSHA, M.TECH
DEPARTMENT OF COMPUTER ENGINEERING

ANDHRA POLYTECHNIC

KAKINADA-533002

2023-2024

Page 1 of 87
DEPARTMENT OF COMPUTER ENGINEERING
CERTIFICATE
This is to certify that this project work entitled “REWARDPLAST-
TURNING THE TRASH INTO TREASURE ” is the bonafied record work
done by Mr/Ms.__________________________________ bearing the
Pin No.___________________________ of the final year, along with
batch mates submitted on the partial fulfilment of the requirement for
the award of DIPLOMA IN COMPUTER ENGINEERING during the
academic year 2023-2024.

Signature of project guide Head of the Department

(Smt. T.PRATHYUSHA, M.Tech) (Sri.G.PARTHASARATHI,M.Tech)

Signature of the External Examiner

Page 2 of 87
ACKNOWLEDGEMENT
We have been tried to our level best to complete this project with group
discussion among our batch-mates and taking valuable suggestions from our
classmates and made it to work properly and effectively.

We thankful to our Project guide Smt.T.PRATHYUSHA for her cooperation and


valuable suggestions, which motivated us to complete this project.

We also extend our thanks to our lecturers Smt V.Anusuya, Smt.N.Pavani,


Smt.CH.Pravalika, Smt.K.LaxmiDevi and Kum.N.SandhyaRani for their
valuable suggestions during the course of Project from time to time.

We also thankful to our Head of Computer Engineering and our project


coordinator Sri.G.PARTHA SARATHI, for his cooperation and unflinching
Devotion, which motivated us to complete this project.

We also thankful to our Respected Principal Sri. N.JANARDHANA RAO for his
kind support in successful completion of this project.

We also thankful to all teaching and non-teaching staff of Computer Engineering


department who has helped us either directly or indirectly in completion of this
project.

Page 3 of 87
PROJECT ASSOCIATES

Project Team : Pin no:


T.SAI SANKAR 21010-CM-109

T.JAYARAJ 21010-CM-107

K.LIKITH SAI KUMAR 21010-CM-071

K.SAMPATH KUMAR 21010-CM-067

S.KALYAN KUMAR 21010-CM-124

U.RAJASRI 21010-CM-129

M.JESHIKA 21010-CM-102

G.RAJAMANI 21045-CM-015

N.SAI KUMAR 21010-CM-108

Page 4 of 87
TABLE OF CONTENT
Sl.n CONTENTS Pg.no
o
1. ABSTRACT 6

2. SOFTWARE REQUIREMENTS 7

3. INTRODUCTION 8-12

4. SYSTEM ANALYSIS AND 13-14


FEASILIBILTY STUDY
5. SRS & DESIGN 15-19

6. SOURCE CODE 20-67

7. TESTING AND OUTPUT SCREENS 68-80

8. BIBLIOGRAPHY 81

9. FUTURE WORK 82-83

10. CONCLUSION 84

Page 5 of 87
ABSTRACT

The Plastic Recycling Incentive Website aims to encourage and incentivize


individuals to participate in plastic recycling efforts by providing rewards for their
contributions. The website serves as a platform to track and record the details of
individuals who bring plastic to recycling centers.

Participants register on the website and submit information about their


plastic recycling activities, including the type and quantity of plastic recycled and
the recycling center visited. Each participants assigned a unique identification code
to track their submissions. Rewards, including monetary incentives and plants, are
distributed periodically based on the quantity of plastic recycled or other
predefined criteria.

Through this initiative, the website aims to increase plastic recycling


rates, reduce plastic waste, and promote sustainable practices. It provides a concise
overview of the Plastic Recycling Incentive Website project, highlighting its
purpose, key features, and goals. It outlines the core elements of the website,
including user registration, submission of plastic recycling activities, unique
identification system, reward distribution, educational resources, recycling center
locator, and community engagement.

The project aims to create a positive impact by motivating


individuals to actively participate in plastic recycling, contributing to a cleaner and
more sustainable environment.

Page 6 of 87
SOFTWARE REQUIREMENTS

SOFTWARE SPECIFICATION:

Os : WINDOWS 11

Front End : HTML,CSS, JAVA SCRIPT

Back End : PHP .

Platform : Visual studio,Notepad, XAMMP.

SCRIPT LANGUAGE:

JAVA SCRIPT

WEB BROWSER :

CHROME, INTERNET EXPLORER (OR) ANY BROWSER

Page 7 of 87
INTRODUCTION
REWARDPLAST-TURNING THE TRASH INTO
TRESAURE
Welcome to the documentation for our completed project, RewardPlast.
RewardPlast is an innovative initiative dedicated to making a positive impact on
the environment and supporting the recycling industry. In this comprehensive
documentation, we will explore the core aspects of this project, its significance,
and how it empowers individuals to take action for a cleaner, more sustainable
future.

The Environmental Challenge: Plastic Pollution


Plastic pollution is a global environmental crisis that poses significant challenges
to ecosystems, wildlife, and the health of our planet. The proliferation of single-use
plastics, mismanaged waste, and the persistence of plastic waste in natural
environments have made this issue a pressing concern.

RewardPlast's Vision: A Digital Solution for a Real-World


Problem
RewardPlast was conceived with a vision to address this challenge in a creative
and impactful manner. Our platform empowers individuals to actively engage in
recycling initiatives, make a tangible difference, and earn rewards for their
contributions. By bridging the gap between responsible citizens and recycling
facilities, RewardPlast aims to promote a sustainable, circular economy for
plastics.

Page 8 of 87
Key Project Objectives:
Empowering Users:
RewardPlast provides an accessible and user-friendly platform for individuals to
participate in recycling efforts.

Supporting the Recycling Industry:


We aim to enhance the sustainability and efficiency of recycling centers through
collaborations and optimized resource allocation.

Environmental Impact: Our project is designed to contribute to a cleaner,


more sustainable environment by encouraging responsible plastic disposal.

The Documentation Ahead:


This documentation serves as a comprehensive guide to RewardPlast, covering
every facet of the project, from user manuals for both the admin and user panels to
technical documentation, deployment instructions, security guidelines, and future
plans.

As you delve into the documentation, we invite you to explore the inner workings
of RewardPlast, understand the challenges we've overcome, and consider the future
enhancements we envision. Whether you're a user, administrator, or a curious
observer, we hope this documentation enriches your understanding of our project
and inspires you to be part of our mission for a cleaner and more sustainable
future.

Thank you for your interest in RewardPlast, and we hope you find this
documentation informative and valuable.

Page 9 of 87
HTML:
Hypertext Markup Language (HTML) is the standard markup
language for creating web pages and web applications. With Cascading Style
Sheets (CSS), and JavaScript, it forms a triad of cornerstone technologies for
the World Wide Web. Web browsers receive HTML documents from a web
server or from local storage and render them into multimedia web pages. HTML
describes the structure of a web page semantically and originally included cues for
the appearance of the document.
HTML elements are the building blocks of HTML pages. With
HTML constructs, images and other objects, such as interactive forms, may be
embedded into the rendered page. It provides a means to create structured
documents by denoting structural semantics for text such as headings, paragraphs,
lists, links, quotes and other items. HTML elements are delineated by tags, written
using angle brackets. Tags such as <img /> and <input /> introduce content into the
page directly. Others such include other tags as sub-elements. Browsers do not
display the HTML tags, but use them to interpret as <p>...</p> surround and
provide information about document text and may the content of the page.

HTML can embed programs written in a scripting language such


as JavaScript which affect the behavior and content of web pages. Inclusion of
CSS defines the look and layout of content. The World Wide Web
Consortium (W3C), maintainer of both the HTML and the CSS standards, has
encouraged the use of CSS over explicit presentational HTML.

CSS:
Cascading Style Sheets (CSS) is a style sheet language used for
describing the presentation of a document written in a markup language. Although
most often used to set the visual style of web pages and user interfaces written
in HTML and XHTML, the language can be applied to any XML document,
including plain XML, SVG and XUL, and is applicable to rendering in speech, or
on other media. Along with HTML and JavaScript, CSS is a cornerstone
technology used by most websites to create visually engaging WebPages, user
interfaces for web applications, and user interfaces for many mobile applications.
CSS is designed primarily to enable the separation of document content from
document presentation, including aspects such as the layout, colors, and fonts. This

Page 10 of 87
separation can improve content accessibility, provide more flexibility and control
in the specification of presentation characteristics, enable multiple HTML pages to
share formatting by specifying the relevant CSS in a separate .css file, and reduce
complexity and repetition in the structural content.
Separation of formatting and content makes it possible to present the same
markup page in different styles for different rendering methods, such as on-screen,
in print, by voice (via speech-based browser or screen reader), and on Braille-
based tactile devices. It can also display the web page differently depending on the
screen size or viewing device. Readers can also specify a different style sheet, such
as a CSS file stored on their own computer, to override the one the author
specified.
Changes to the graphic design of a document (or hundreds of documents)
can be applied quickly and easily, by editing a few lines in the CSS file they use,
rather than by changing markup in the documents.
The CSS specification describes a priority scheme to determine which style
rules apply if more than one rule matches against a particular element. In this so-
called cascade, priorities (or weights) are calculated and assigned to rules, so that
the results are predictable.

JAVASCRIPT:
JavaScript is a high-level, dynamic, untyped,
and interpreted programming language. It has been standardized in
the ECMAScript language specification. Alongside HTML and CSS, JavaScript is
one of the three core technologies of World Wide Web content production; the
majority of websites employ it, and all modern Web browsers support it without
the need for plug-ins. JavaScript is prototype-based with first-class functions,
making it a multi-paradigm language, supporting object-oriented, imperative,
and functional programming styles It has an API for working with text, arrays,
dates and regular expressions, but does not include any I/O, such as networking,
storage, or graphics facilities, relying for these upon the host environment in which
it is embedded.
Although there are strong outward similarities between JavaScript and Java,
including language name, syntax, and respective standard libraries, the two are
distinct languages and differ greatly in their design. JavaScript was influenced by
programming languages such as Self and Scheme.
JavaScript is also used in environments that are not Web-based, such
as PDF documents, site-specific browsers, and desktop widgets. Newer and faster

Page 11 of 87
JavaScript virtual machines (VMs) and platforms built upon them have also
increased the popularity of JavaScript for server-side Web applications. On
the client side, developers have traditionally implemented JavaScript as
an interpreted language, but more recent browsers perform just-in-time
compilation. Programmers also use JavaScript in video-game development, in
crafting desktop and mobile applications, and in server-side network
programming with run-time environments.

PHP:
PHP is a server-side scripting language designed primarily for web
development but also used as a general-purpose programming language. Originally
created by Rasmus Lerdorf in 1994, the PHP reference implementation is now
produced by The PHP Development Team. PHP originally stood for Personal
Home Page, but it now stands for the recursive acronym PHP: Hypertext
Preprocessor.
PHP code may be embedded into HTML or HTML5 code, or it can be used
in combination with various web template systems, web content management
systems and web frameworks. PHP code is usually processed by a
PHP interpreter implemented as a module in the web server or as a Common
Gateway Interface (CGI) executable. The web server combines the results of the
interpreted and executed PHP code, which may be any type of data, including
images, with the generated web page. PHP code may also be executed with
a command-line interface (CLI) and can be used to implement standalone graphical
applications.
The standard PHP interpreter, powered by the Zend Engine, is free
software released under the PHP License. PHP has been widely ported and can be
deployed on most web servers on almost every operating system and platform, free
of charge.

Page 12 of 87
System Analysis and Feasibility Study
System analysis and feasibility study are critical initial phases of any project
development process. They help define project scope, analyze requirements, and
evaluate whether the project is viable, sustainable, and economically feasible. In
the context of RewardPlast, these phases played a crucial role in shaping the
project's direction.

System Analysis: Defining the Project Scope


System analysis involves a detailed examination of the project's objectives,
requirements, and constraints. In the case of RewardPlast, system analysis was
instrumental in:

- Identifying the key features and functionalities of both the user and admin panels.

- Determining the user experience and functionality expectations.

- Outlining the technological requirements, including databases, hosting, and web


development frameworks.

- Developing a clear understanding of the user journey, from registration to


recycling requests to reward distribution.

This phase ensured that the project's goals and the end-user's needs were carefully
considered and translated into concrete system requirements.

Feasibility Study: Evaluating Project Viability


A feasibility study is a critical step in determining whether the project is
financially, technically, and operationally feasible. For RewardPlast, the feasibility
study involved:

Economic Feasibility:
Assessing the financial viability of the project, including budget requirements for
development, maintenance, and operational costs. It also involved considering the
potential for revenue generation through partnerships, sponsorships, or other
avenues.

Page 13 of 87
Technical Feasibility:
Evaluating the technical aspects of the project, including the availability of
technology, the complexity of implementation, and the feasibility of the desired
features.

Operational Feasibility:
including resource allocation, scalability, and the availability of skilled personnel
to maintain and support the system.

The feasibility study ensured that RewardPlast was not only a concept but a
practical, sustainable solution Analyzing how the project would function on a day-
to-day basis, to the problem of plastic pollution.

Outcome: A Strong Foundation


The thorough system analysis and feasibility study laid a strong foundation for the
RewardPlast project. They helped in setting clear objectives, defining project
scope, and ensuring that the project was economic.

As you explore this documentation, you will find evidence of the results of this
system analysis and feasibility study throughout the project, from the user panel's
user-friendly features to the admin panel's efficient resource allocation. These
phases played a vital role in shaping RewardPlast into a comprehensive and
sustainable solution for addressing plastic pollution.

Page 14 of 87
SOFTWARE REQUIREMENT&SPECIFICATION:
Software Requirements and Specification (SRS) is a crucial document that outlines
the detailed requirements and specifications of a software project. In the case of
RewardPlast, the SRS serves as a comprehensive guide to the functionality,
features, and technical aspects of the platform.

Project Objectives: Defining the Purpose

The SRS for RewardPlast begins with a clear statement of project objectives,
outlining the purpose and goals of the software. These objectives typically include:

- Empowering users to participate in recycling initiatives.

- Supporting the recycling industry by optimizing resource allocation.

- Contributing to a cleaner and more sustainable environment through responsible


plastic disposal.

Functional Requirements: What the System Does


The SRS defines the functional requirements of the software. In the context of
RewardPlast, these requirements include a detailed description of the features for
both the user and admin panels. Functional requirements may cover:

- User registration and login processes.

- Recycling request generation, processing, and rewards distribution.

- Leaderboard functionality to encourage user engagement.

- User profile management and payment history.

Each requirement is described in detail, specifying input, processing, and output,


and is typically supported by use cases or user stories.

Non-Functional Requirements: How the System Performs


Non-functional requirements are equally important and are documented in the
SRS. These requirements define how the system should perform. For RewardPlast,
non-functional requirements may include:

Page 15 of 87
- Performance criteria, such as response times and system reliability.

- Security measures to protect user data and financial transactions.

- User interface design and usability standards.

- Compatibility with various web browsers and devices.

- Compliance with privacy regulations.

Technical Requirements: The Underlying Technology


The technical requirements section outlines the technologies, tools, and
infrastructure necessary for the development and operation of RewardPlast. This
includes specifications such as:

- The programming languages and frameworks used for web development.

- Database management systems and data storage requirements.

- Hosting and server specifications.

- Security protocols and encryption standards.

- Third-party services or APIs used for specific functionalities.

Data Requirements: Managing Information


Data is a critical component of RewardPlast, and the SRS defines data
requirements. This includes the structure of the database, data formats, and how
information is stored, accessed, and processed. It also covers user data, payment
records, and recycling request information.

Use Cases and Scenarios: Describing User Interactions


Use cases and scenarios are presented in the SRS to illustrate how different users
interact with the system. These detailed descriptions provide insights into user
journeys, helping developers and stakeholders understand how the software will be
used in real-world scenarios.

Page 16 of 87
Outcome: A Comprehensive Blueprint
The Software Requirements and Specification (SRS) document serves as a
comprehensive blueprint for the development and operation of RewardPlast. It
guides the software development team, ensuring that the project aligns with its
objectives, functions as intended, and meets all technical and non-technical
requirements. This document also plays a crucial role in communication between
development teams, project stakeholders, and quality assurance teams, ensuring
that everyone involved in the project has a clear understanding of the project's
scope and functionality.

Page 17 of 87
DESIGN
Design is a critical aspect of any software project, including your recycling plastic
website, RewardPlast. It encompasses the visual and structural aspects of the
website and plays a significant role in user experience and engagement. Here's an
overview of design in the context of your project:

Design in RewardPlast: Crafting a User-Centric Experience

1. User Interface (UI) Design:

- The user interface design of RewardPlast focuses on creating a visually


appealing and user-friendly environment for both the user and admin panels. It
includes the layout, color schemes, typography, and overall aesthetics of the
website.

2. Responsive Design:

- RewardPlast is designed to be responsive, ensuring that the website functions


seamlessly on a variety of devices, including desktop computers, tablets, and
mobile phones. This adaptability enhances accessibility for a broader user base.

3. User-Centered Design:

- The design of RewardPlast is driven by a user-centered approach, placing the


user's needs and expectations at the forefront. It ensures that the website is intuitive
to navigate, with a clear and logical flow.

4. User Experience (UX) Design:

- UX design focuses on the overall experience users have while interacting with
the website. It includes considerations like smooth navigation, efficient processes
for generating recycling requests, and the overall satisfaction of users.

5. Information Architecture:

- Design also involves structuring the content and information on the website.
Information architecture organizes data, ensuring that users can easily find what
they're looking for, whether it's recycling instructions, their profiles, or the
leaderboard.

Page 18 of 87
6. Visual Design Elements:

- Visual elements like icons, images, and graphics are used to enhance the visual
appeal of the website and convey information effectively. The use of imagery can
also help educate users about recycling practices and the environmental impact of
their actions.

7. Consistency and Branding:

- RewardPlast maintains design consistency, ensuring that elements like logos,


color schemes, and typography are uniform throughout the website. Consistency
reinforces branding and builds trust.

8. Accessibility:

- The design of RewardPlast takes accessibility into account, making the website
usable for individuals with disabilities. This includes features like alt text for
images and adherence to accessibility guidelines.

9. Prototype and Testing:

- Before the final design is implemented, prototypes and mock-ups are often
created to test the design's functionality and gather user feedback. This iterative
approach ensures that the design aligns with user expectations.

10. User Feedback and Iteration:

- User feedback plays a critical role in refining the design. User testing and
feedback are incorporated into the design process to address any usability issues or
areas for improvement.

11. Future-Proofing:

- Design considerations also involve future-proofing the website, ensuring that it


can adapt to changing design trends and emerging technologies.

Page 19 of 87
SOURCE CODE
CODING:
Coding may refer to:
• Channel coding, in coding theory
• Line coding
• Computer programming, the process of designing, writing, testing, debugging /
troubleshooting, and maintaining the source code of computer programs.
• The process of Statistical classification of information.
• Coding (social sciences), refers to an analytical process in which data, in both
quantitative form (such as questionnaires results) or qualitative (such as
interview transcripts) are categorised to facilitate analysis.
• Coding (therapy), a controversial therapy used to treat addictions.
• Legal coding, the process of creating summary or keyword data from a
document. It is widely used in the legal profession to create a fast-search index
or database of documents for use in litigation.
• A coding strand of DNA is translated into a protein product.
• Code Blue (emergency code), which is a patient in Cardiac Arrest or
Respiratory Arrest.
The basic coding related to my project are as follows:

REWARD.HTML

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<meta http-equiv="X-UA-Compatible" content="IE=edge">

<meta name="viewport" content="width=device-width,initial-scale=1.0">

Page 20 of 87
<title>Reward Plast</title>

<link rel="stylesheet" href="reward.css">

</head>

<body>

<section class="home">

<div class="content">

<h1><ion-icon name="earth"></ion-icon>REWARDPLAST</h1>

<h4><p>TURNING THE TRASH INTO TRESURE</p></h4>

<button class="btnLogin" onclick="switchForm('login', event)">Get


Started</button>

</div>

<div id="logincontainer">

<div class="wrapper">

<div class="container">

<form action="login.php" class="login active" method="post"


id="login-form">

<h2 class="title">Login with your account</h2>

<div class="form-group">

<label>Username</label>

<div class="input-group">

<input id="email" placeholder="Enter your Username"


name="username"required>

<ion-icon name="person"></ion-icon>

</div>

</div>

Page 21 of 87
<div class="form-group">

<label for="password">Password</label>

<div class="input-group">

<input type="password" pattern=".{8,}" id="password"


placeholder="Your password" name="password"required>

<ion-icon name="lock-closed"></ion-icon>

</div>

<span class="help-text">At least 8 characters</span>

</div>

<button type="submit" class="btn-submit">Login</button>

<a href="forgetpassword/requestReset.php">Forgot password?</a>

<p>I don't have an account. <a href="#"


onclick="switchForm('register', event)">Register</a></p>

</form>

<form action="Registration.php" class="register"


method="POST"id="register-form">

<h2 class="title">Register your account</h2>

<div class="form-group">

<label>Full Name</label>

<div class="input-group">

<input type="name" id="email" placeholder="Enter your Full


Name " name="name" required>

<ion-icon name="accessibility"></ion-icon>

</div>

Page 22 of 87
</div>

<div class="form-group">

<label for="email">Email</label>

<div class="input-group">

<input type="email"id="email" placeholder="Enter your Email


adresses" name="email" required

title="Please enter a valid email with @ and .com ."><ion-icon


name="mail"></ion-icon>

</div>

<div class="help-text">Please enter your email adress.</div>

</div>

<div class="form-group">

<label for="Username">Username</label>

<div class="input-group">

<input id="email" placeholder="create a Username"


name="username" required>

<ion-icon name="person"></ion-icon>

</div>

</div>

<div class="form-group">

<label for="password">Password</label>

<div class="input-group">

<input type="password" id="password" placeholder="Enter your


password" name="password" required

Page 23 of 87
pattern="^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-
Za-z\d@$!%*?&]{8,}$"

title="Password must contain at least 8 characters, including at


least one uppercase letter, one lowercase letter, one number, and one special
character (e.g., @$!%*?&).">

<ion-icon name="lock-closed"></ion-icon>

</div>

<span class="help-text">At least 8 characters</span>

</div>

<div class="form-group">

<label for="confirm-pass">Confirm password</label>

<div class="input-group">

<input type="password" id="confirm-pass" placeholder="Enter


password again" name="confirmpassword" required>

<ion-icon name="lock-closed"></ion-icon>

</div>

<span class="help-text">Confirm password must be same with


password</span>

</div>

<button type="submit" class="btn-submit">Register</button>

<p>I already have an account. <a href="#"


onclick="switchForm('login', event)">Login</a></p>

</form>

</div>

</div>

<script>

Page 24 of 87
const wrapper = document.querySelector('.wrapper');

const loginForm = document.querySelector('.login');

const registerForm = document.querySelector('.register');

const btnLogin = document.querySelector('.btnLogin');

// Initially hide the login and register forms

loginForm.style.display = 'none';

registerForm.style.display = 'none';

btnLogin.addEventListener('click', () => {

// Toggle the display of login and register forms

if (loginForm.style.display === 'none') {

loginForm.style.display = 'block';

registerForm.style.display = 'block';

} else {

loginForm.style.display = 'none';

registerForm.style.display = 'none';

});

</script>

<script>

function submitForm(event) {

event.preventDefault(); // Prevent the default form submission behavior

Page 25 of 87
var form = event.target; // Use the event.target to reference the form element

var formData = new FormData(form);

fetch('Registration.php', {

method: 'POST',

body: formData

})

.then(response => response.json())

.then(data => {

alert(data.message);

})

.catch(error => {

console.error('Error:', error);

});

// Add an event listener to the form for form submission

var form = document.getElementById('register-form'); // Replace 'register-form'


with your form ID

form.addEventListener('submit', submitForm);

</script>

<script>

function switchForm(className, e) {

Page 26 of 87
e.preventDefault();

const allForm = document.querySelectorAll('form');

const form = document.querySelector(`form.${className}`);

allForm.forEach(item=> {

item.classList.remove('active');

})

form.classList.add('active');

const registerPassword = document.querySelector('form.register #password');

const registerConfirmPassword = document.querySelector('form.register #confirm-


pass');

registerPassword.addEventListener('input', function () {

registerConfirmPassword.pattern = `${this.value}`;

})

</script>

<script>

function displayMessage(message) {

alert(message);

Page 27 of 87
function handleResponse(response) {

if (response.status === 'success') {

displayMessage('LOGIN SUCCESSFULL');

if (response.redirect) {

window.location.href = response.redirect;

} else if (response.status === 'error') {

if (response.message) {

displayMessage(response.message);

} else {

displayMessage('An error occurred. Please try again later.');

} else {

displayMessage('Unknown response status');

document.addEventListener('DOMContentLoaded', function() {

var form = document.getElementById('login-form'); // Replace 'login-form' with


your form ID

form.addEventListener('submit', function(event) {

event.preventDefault(); // Prevent the default form submission behavior

var formData = new FormData(form);

Page 28 of 87
fetch('login.php', {

method: 'POST',

body: formData

})

.then(response => {

if (!response.ok) {

throw new Error('Network response was not ok');

return response.json();

})

.then(data => {

handleResponse(data);

})

.catch(error => {

console.error('Error:', error);

displayMessage('An error occurred. Please try again later.');

});

});

});

</script>

<script type="module"
src="https://unpkg.com/[email protected]/dist/ionicons/ionicons.esm.js"></script>

Page 29 of 87
<script nomodule
src="https://unpkg.com/[email protected]/dist/ionicons/ionicons.js"></script>

</body>

</html>

Reward.css

*{

margin: 0;

padding: 0;

box-sizing: border-box;

font-family: 'Poppins',sans-serif;

.nav a{

position: relative;

font-size: 1.1em;

color: white;

text-decoration: none;

margin-left: 40px;

.nav a::after{

content: '';

position: absolute;

left:0;

bottom: -6px;

width:100%;

Page 30 of 87
height: 3px;

background: white;

border-radius: 5px;

opacity: 0;

transition: .5s;

.nav a:hover::after{

opacity: 1;

.home

position: absolute;

width: 100%;

height: 100vh;

background:url('project.jpg') no-repeat;

background-size: cover;

background-position: center;

display: flex;

justify-content: space-between;

align-items: center;

padding: 80px 100px 0;

.home .content{

max-width: 6000x;

Page 31 of 87
color: #fff;

.content h1{

font-size: 3em;

letter-spacing: .03em;

.content p{

margin: 10px 0 40px;

.content button{

color: #fff;

text-decoration: none;

border: 2px solid #fff;

font-weight: 500;

padding: 10px 40px;

border-radius: 40px;

transition: .5s;

display: flex;

.content button:hover{

background:linear-gradient(90deg,#1e0b04,#71412a);

.content .btnLogin{

width :130px;

Page 32 of 87
height:50px;

background:transparent;

border:2px solid #fff;

outline:none;

border-radius: 40px;

align-items: center;

cursor: pointer;

font-size: 10 em;

color: #fff;

font-weight:500;

margin-left: 40px;

transition: .5s;

.home .wrapper{

position: relative;

width: 440px;

.wrapper h2{

font-size: 2em;

color: #fff;

text-align: center;

.wrapper .input-box{

position: relative;

Page 33 of 87
width: 100%;

height: 50px;

margin: 40px 0;

.input-box input{

width:100%;

height: 100%;

background: transparent;

border:1px solid #fff;

outline: none;

border-radius: 40px;

font-size: 1em;

color: #fff;

padding: 0 25px 0 45px;

.input-box label{

position: absolute;

top: 50%;

left:45px;

transform: translateY(-50%);

font-size: 1 em;

color: #fff;

pointer-events: none;

Page 34 of 87
a{

color: var(--blue);

transition: all .3s ease;

text-decoration: none;

a:hover {

color: var(--dark-blue);

body {

background:url('project.jpg') no-repeat ;

display: flex;

justify-content: center;

align-items: center;

min-height: 100vh;

padding: 0 16px;

position: relative;

.container {

max-width: 500px;

width: 100%;

position: relative;

Page 35 of 87
}

form {

width: 100%;

padding: 28px;

border-radius: 12px;

background:transparent;

position: absolute;

top: 50%;

transform: translateY(-50%) scale(.8);

opacity: 0;

z-index: 100;

transition: all .3s ease;

transition-delay: 0s;

form.active {

transform: translateY(-50%);

opacity: 1;

z-index: 200;

transition-delay: .3s;

.title {

font-size: 24px;

font-weight: 600;

margin-bottom: 20px;

Page 36 of 87
}

.form-group {

margin-bottom: 14px;

.form-group label {

display: inline-block;

margin-bottom: 4px;

.input-group {

width: 100%;

position: relative;

.input-group input {

padding: 12px 40px 12px 20px;

outline: none;

border-radius: 6px;

border: 1px solid var(--dark-grey);

width: 100%;

transition: all .3s ease;

/* Validation */

.input-group input:focus,

.input-group input:not(:placeholder-shown) {

Page 37 of 87
border-color: var(--blue);

background: var(--grey);

.input-group input:focus + i,

.input-group input:not(:placeholder-shown) + i {

color: var(--blue);

.input-group input:focus:valid {

box-shadow: 0 0 0 4px var(--light-green);

.input-group input:valid:not(:placeholder-shown) {

border-color: var(--green);

.input-group input:valid:not(:placeholder-shown) + i {

color: var(--green);

.input-group input:invalid:not(:placeholder-shown) {

border-color: var(--red);

.input-group input:invalid:not(:placeholder-shown) + i {

color: var(--red);

.input-group input:focus:invalid {

box-shadow: 0 0 0 4px var(--light-red);

Page 38 of 87
}

.input-group input:focus,

.input-group input:focus:placeholder-shown {

box-shadow: 0 0 0 4px var(--bs);

.input-group input:focus,

.input-group input:not(:placeholder-shown) {

border-color: var(--blue);

background: var(--grey);

.input-group input:focus + i,

.input-group input:not(:placeholder-shown) + i {

color: var(--blue);

.input-group input:focus:valid {

box-shadow: 0 0 0 4px var(--light-green);

.input-group input:valid:not(:placeholder-shown) {

border-color: var(--green);

.input-group input:valid:not(:placeholder-shown) + i {

color: var(--green);

.input-group input:invalid:not(:placeholder-shown) {

Page 39 of 87
border-color: var(--red);

.input-group input:invalid:not(:placeholder-shown) + i {

color: var(--red);

.input-group input:focus:invalid {

box-shadow: 0 0 0 4px var(--light-red);

.input-group input:focus,

.input-group input:focus:placeholder-shown {

box-shadow: 0 0 0 4px var(--bs);

/* Validation */

.input-group i {

position: absolute;

top: 50%;

transform: translateY(-50%);

right: 20px;

color: var(--text);

pointer-events: none;

transition: all .3s ease;

Page 40 of 87
.input-group ion-icon {

position: absolute;

top: 50%;

transform: translateY(-50%);

right: 20px;

color: var(--text);

pointer-events: none;

transition: all .3s ease;

.form-group .help-text {

font-size: 12px;

color: var(--text);

.btn-submit {

padding: 12px 0;

display: block;

width: 100%;

color: #fff;

border-radius: 6px;

cursor: pointer;

transition: all .3s ease;

border: none;

font-weight: 500;

background: var(--blue);

Page 41 of 87
margin-bottom: 20px;

.btn-submit:hover {

background: var(--dark-blue);

Generate request.php

<?php

session_start();

require 'connection.php';

// Check if the user is logged in and their username is in the session

if (!isset($_SESSION['username'])) {

exit();

$username = $_SESSION['username'];

if (isset($_POST["submit"])) {

$street = $_POST["street"];

$city = $_POST["city"];

$state = $_POST["state"];

$postal_code = $_POST["postal_code"];

if ($_FILES["image"]["error"] == 4) {

Page 42 of 87
echo "<script> alert('Image Does Not Exist'); </script>";

} else {

$fileName = $_FILES["image"]["name"];

$fileSize = $_FILES["image"]["size"];

$tmpName = $_FILES["image"]["tmp_name"];

$validImageExtension = ['jpg', 'jpeg', 'png'];

$imageExtension = explode('.', $fileName);

$imageExtension = strtolower(end($imageExtension));

if (!in_array($imageExtension, $validImageExtension)) {

echo "<script>alert('Invalid Image Extension');</script>";

} else if ($fileSize > 1000000) {

echo "<script>alert('Image Size Is Too Large');</script>";

} else {

$newImageName = uniqid();

$newImageName .= '.' . $imageExtension;

move_uploaded_file($tmpName, 'img/' . $newImageName);

$query = "INSERT INTO addresses (username, street, city, state,


postal_code, image)

VALUES ('$username', '$street', '$city', '$state', '$postal_code',


'$newImageName')";

mysqli_query($conn, $query);

Page 43 of 87
echo "<script>alert('Successfully Added');</script>";

?>

<!DOCTYPE html>

<html lang="en" dir="ltr">

<head>

<meta charset="utf-8">

<title>Upload Image File</title>

<link rel="stylesheet" href="request1.css">

</head>

<body style="background-color:#ccea7b;">

<section>

<h2><ion-icon name="earth"></ion-icon>REWARDPLAST</h2>

<p class="pa">TURNING THE TRASH INTO TREASURE</p>

</section>

<div class="margin">

<h1>REQUEST FORM</h1>

</div>

<div class="request-box">

<form class="" action="" method="post" id="combined-form"


autocomplete="off" enctype="multipart/form-data">

<div id="address-form" class="form-container">

Page 44 of 87
<label for="street">Street Address:</label>

<input type="text" id="street" name="street" placeholder="Street Address"


required>

<label for="city">City:</label>

<input type="text" id="city" name="city" placeholder="City" required>

<label for="state">State:</label>

<input type="text" id="state" name="state" placeholder="State" required>

<label for="postal">Postal Code:</label>

<input type="text" id="postal" name="postal_code" placeholder="Postal


Code" required>

</div>

<div id="file-upload-form" class="form-container">

<label for="image">Image : </label>

<input type="file" name="image" id = "image" accept=".jpg, .jpeg, .png"


value=""> <br> <br>

</div>

<div class="button-container">

<button id="go-back-button"onclick="goBack()">Goback</button>

<button type="submit" name="submit">Submit</button>

</div>

</form>

</div>

<script>

function goBack() {

window.location.href = 'userprofile.php'; // Redirect back to page1.php

Page 45 of 87
}

function submitForm() {

// Perform form submission logic here if needed

// For now, you can leave this function empty

// Prevent form submission on Enter key press

document.getElementById('combined-form').addEventListener('keydown',
function (e) {

if (e.key === 'Enter') {

e.preventDefault();

});

</script>

</script>

<script type="module"
src="https://unpkg.com/[email protected]/dist/ionicons/ionicons.esm.js"></script>

<script nomodule
src="https://unpkg.com/[email protected]/dist/ionicons/ionicons.js"></script>

</body>

</html>

USERMANAGEMENT.php

<!DOCTYPE html>

<html>

Page 46 of 87
<head>

<title>User List</title>

<style>

*{

margin: 0;

padding: 0;

box-sizing: border-box;

font-family: 'Poppins', 'sans-serif';

body {

font-family: Arial, sans-serif;

background-color:#ccea7b;

margin: 0;

padding: 0;

section {

background: linear-gradient(90deg, #1e0b04, #71412a);

color: #fff;

text-align: center;

padding: 20px 0;

section h2{

text-align: center;

Page 47 of 87
font-size: 3em;

text-align: center;

background: linear-gradient(90deg, #1e0b04, #71412a);

color: #fff;

padding: 20px 0;

margin: 0;

width: 100%;

section p{

text-align: center;

font-size: 1.5em;

h1 {

text-align: center;

background-color: #ccea7b;

padding: 20px;

margin-bottom: 20px;

table {

border-collapse: collapse;

width: 80%;

margin: 20px auto;

Page 48 of 87
table, th, td {

border: 1px solid #ddd;

th, td {

padding: 10px;

text-align: left;

th {

background-color: #007bff;

font-size:30px;

/* Style for buttons */

button.demote {

background-color: blue;

color: white;

button.promote {

background-color: green;

color: white;

Page 49 of 87
button.remove {

background-color: red;

color: white;

.action-buttons {

display: flex;

justify-content: space-between;

.goback-button {

position: fixed;

top: 20px;

left: 20px;

z-index: 9999;

cursor: pointer;

background: linear-gradient(90deg, #1e0b04, #71412a);

border-radius: 1px;

left: 40px;

top: 25px;

font-size: 35px;

color: white;

padding: 6px 12px;

transition: all .5s ease;

Page 50 of 87
}

</style>

<button class="goback-button" onclick="goBack()"><ion-icon name="arrow-


back-outline"></ion-icon></button>

</head>

<body>

<section>

<h2><ion-icon name="earth"></ion-icon>REWARDPLAST</h2>

<p class="pa">TURNING THE TRASH INTO TREASURE</p>

</section>

<div class="line-container">

<hr class="line">

</div>

<h1>User Management</h1>

<table>

<thead>

<tr>

<th>ID</th>

<th>NAME</th>

<th>EMAIL</th>

<th>USERNAME</th>

<th>USER_TYPE</th>

<th>Action</th>

</tr>

Page 51 of 87
</thead>

<tbody>

<?php

$host = 'localhost';

$username = 'root';

$password = '';

$database = 'project';

// Create a database connection

$conn = new mysqli($host, $username, $password, $database);

// Check the connection

if ($conn->connect_error) {

die("Connection failed: " . $conn->connect_error);

// SQL query to retrieve data from the database

$sql = "SELECT name,email,username,user_type FROM clients";

// Execute the query

$result = $conn->query($sql);

if (!$result) {

die("Query failed: " . mysqli_error($conn));

Page 52 of 87
// Check if there are rows in the result set

if ($result->num_rows > 0) {

$i = 1;

while ($row = $result->fetch_assoc()) {

echo "<tr>";

echo "<td>" . $i++ . "</td>";

echo "<td>" . $row['name'] . "</td>";

echo "<td>" . $row['email'] . "</td>";

echo "<td>" . $row['username'] . "</td>";

echo "<td>" . $row['user_type'] . "</td>";

echo "<td class='action-buttons'>";

// Conditionally display the "Demote" button if user_type is "admin"

if ($row['user_type'] == 'admin') {

echo "<button class='demote' onclick='demoteUser(this)' data-


username='" . $row['username'] . "'>Demote</button>";

} else {

echo "<button class='promote' onclick='promoteUser(this)' data-


username='" . $row['username'] . "'>Promote</button>";

echo "<button class='remove' onclick='removeUser(this)' data-


username='" . $row['username'] . "'>Remove</button>";

echo "</td>";

Page 53 of 87
echo "</tr>";

} else {

echo "<tr><td colspan='6'>No users found</td></tr>";

// Close the database connection

$conn->close();

?>

</tbody>

</table>

<script>

function demoteUser(button) {

// Access the data-username attribute from the button element

var username = button.getAttribute('data-username');

console.log("Demote button clicked for username: " + username);

// Send an AJAX request to the new PHP script

var xhr = new XMLHttpRequest();

xhr.open('POST', 'demote.php', true);

xhr.setRequestHeader('Content-type', 'application/x-www-form-
urlencoded');

xhr.onreadystatechange = function () {

if (xhr.readyState === 4 && xhr.status === 200) {

Page 54 of 87
// Check if the response indicates success

if (xhr.responseText === "User demoted successfully") {

alert("User demoted successfully");

location.reload();

} else {

// Handle error messages here if needed

console.log("Error: " + xhr.responseText);

};

// Send the request with the username

xhr.send('username=' + username);

function promoteUser(button) {

// Access the data-username attribute from the button element

var username = button.getAttribute('data-username');

console.log("Demote button clicked for username: " + username);

// Send an AJAX request to the new PHP script

var xhr = new XMLHttpRequest();

xhr.open('POST', 'promote.php', true);

xhr.setRequestHeader('Content-type', 'application/x-www-form-
urlencoded');

Page 55 of 87
xhr.onreadystatechange = function () {

if (xhr.readyState === 4 && xhr.status === 200) {

// Check if the response indicates success

if (xhr.responseText === "User promoted successfully") {

alert("User promoted successfully");

location.reload();

} else {

// Handle error messages here if needed

console.log("Error: " + xhr.responseText);

};

// Send the request with the username

xhr.send('username=' + username);

function removeUser(button) {

// Access the data-username attribute from the button element

var username = button.getAttribute('data-username');

// Ask for confirmation before deleting the user

if (confirm("Are you sure you want to remove this user?")) {

// Send an AJAX request to the PHP script to delete the user

Page 56 of 87
var xhr = new XMLHttpRequest();

xhr.open('POST', 'remove.php', true);

xhr.setRequestHeader('Content-type', 'application/x-www-form-
urlencoded');

xhr.onreadystatechange = function () {

if (xhr.readyState === 4 && xhr.status === 200) {

// Check if the response indicates success

if (xhr.responseText === "User removed successfully") {

alert("User removed successfully");

location.reload();

} else {

// Handle error messages here if needed

console.log("Error: " + xhr.responseText);

};

// Send the request with the username

xhr.send('username=' + username);

</script>

<script>

Page 57 of 87
function goBack() {

window.location.href = 'page2.php'; // Redirect back to page2.php

</script>

<script type="module"
src="https://unpkg.com/[email protected]/dist/ionicons/ionicons.esm.js"></script>

<script nomodule
src="https://unpkg.com/[email protected]/dist/ionicons/ionicons.js"></script>

</body>

</html>

LEADERBOARD.PHP

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<title>Plastic Leaderboard</title>

<button class="goback-button" onclick="goBack()"><ion-icon name="arrow-


back-outline"></ion-icon></button>

</head>

<body>

<section>

<h2><ion-icon name="earth"></ion-icon>REWARDPLAST</h2>

<p class="pa">TURNING THE TRASH INTO TREASURE</p>

</section>

Page 58 of 87
<h2>Leader Board</h2>

<table>

<thead>

<tr>

<th>Rank</th>

<th>Name</th>

<th>Amount (Rupees)</th>

</tr>

</thead>

<tbody>

<?php

// Database connection details

$host = "localhost";

$username = "root";

$password = "";

$database = "project";

// Create a database connection

$conn = new mysqli($host, $username, $password, $database);

if ($conn->connect_error) {

die("Connection failed: " . $conn->connect_error);

Page 59 of 87
// Query to fetch leaderboard data

$sql = "SELECT * FROM clients WHERE user_type = 'user' ORDER BY


plasticAmount DESC";

$result = $conn->query($sql);

if ($result->num_rows > 0) {

$rank = 1;

while ($row = $result->fetch_assoc()) {

echo "<tr class='leaderboard-row" . ($rank === 1 ? ' first-row' : '') . "'>";

echo "<td>" . $rank . "</td>";

echo "<td>" . $row['name'] . "</td>";

echo "<td>" . $row['plasticAmount'] . "</td>";

echo "</tr>";

$rank++;

} else {

echo "<tr><td colspan='3'>No data found</td></tr>";

// Close the database connection

$conn->close();

?>

</tbody>

</table>

Page 60 of 87
<script>

function goBack() {

window.location.href = 'page1.php'; // Redirect back to page1.php

</script>

<style>

body {

background-color:#ccea7b;

section {

width: 100%;

background: linear-gradient(90deg, #1e0b04, #71412a);

color: #fff;

text-align: center;

padding: 20px 0;

section h2 {

text-align: center;

font-size: 3em;

text-align: center;

background: linear-gradient(90deg, #1e0b04, #71412a);

color: #fff;

Page 61 of 87
padding: 20px 0;

margin: 0;

width: 100%;

section p {

text-align: center;

font-size: 1.5em;

h2 {

text-align: center;

font-size: 30px;

color: black;

padding: 20px;

margin-bottom: 20px;

/* Style for the "Go Back" button */

.goback-button {

position: fixed; /* Fixed positioning */

top: 20px; /* Adjust the top position as needed */

left: 20px; /* Adjust the left position as needed */

z-index: 9999; /* Ensure it's above other elements */

Page 62 of 87
cursor: pointer;

background: linear-gradient(90deg, #1e0b04, #71412a);

border-radius: 1px;

left: 40px;

top: 25px;

font-size: 35px;

color: white;

padding: 6px 12px;

transition: all 0.5s ease;

/* Style for the table */

table {

width: 80%;

margin: 20px auto;

border-collapse: collapse;

box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);

/* Style for table header */

th {

font-size: 30px;

background-color: #007bff;

color: white;

Page 63 of 87
text-align: left;

padding: 10px;

/* Style for table rows */

tr {

transition: background-color 0.3s ease-in-out;

/* Style for even rows */

tr:nth-child(even) {

background-color: #f2f2f2;

/* Style for odd rows */

tr:nth-child(odd) {

background-color: #e6e6e6;

/* Style for rank 1 row */

tr:nth-child(1) {

background-color: #ffc107; /* Yellow background for rank 1 */

color: black; /* Change text color for better visibility */

Page 64 of 87
/* Hover effect for rows */

tr:hover {

transform: translateY(-3px);

background-color:#A4BE5C;

td {

padding: 10px;

/* Style the first column (Rank) differently */

td:first-child {

background-color: transparent;

color: black;

font-weight: bold;

/* Add some spacing between the cells in the first row (table headers) */

th, td {

padding: 10px 15px;

/* Center align the text in the Rank column */

td:first-child, th:first-child {

Page 65 of 87
text-align: center;

/* Responsive design for smaller screens */

@media (max-width: 768px) {

table {

width: 100%;

/* Animation for rank 1 row */

tr:nth-child(1) {

animation: highlight 2s ease infinite alternate;

/* Define the highlight animation */

@keyframes highlight {

100% {

background-color: #e91e63; /* Pink */

/* RGB lighting effect for the first row */

Page 66 of 87
@keyframes rgb-lighting {

0% {

background-position: 0 0;

100% {

background-position: 100% 0;

</style>

<script type="module"
src="https://unpkg.com/[email protected]/dist/ionicons/ionicons.esm.js"></script>

<script nomodule
src="https://unpkg.com/[email protected]/dist/ionicons/ionicons.js"></script>

</body>

</html>

TESTING

Page 67 of 87
The aim of testing is to help realise identify all defects in a program.
However, in practice, even after satisfactory completion of the testing phase, it is
not possible to guarantee that a program is error free. This is because the input
domain of most programs is very large, and it is not practical to test the program
exhaustively with respect to each value that he input can assume.

Software testing is an investigation conducted to provide stakeholders


with information about the quality of the product or service under test. Software
testing can also provide an objective, independent view of the software to allow the
business to appreciate and understand the risks of software implementation. Test
techniques include the process of executing a program or application with the
intent of finding software bugs (errors or other defects), and to verify that the
software product is fit for use.
Software testing involves the execution of a software component or system
component to evaluate one or more properties of interest. In general, these
properties indicate the extent to which the component or system under test:
• meets the requirements that guided its design and development,
• responds correctly to all kinds of inputs,
• performs its functions within an acceptable time,
• is sufficiently usable,
• can be installed and run in its intended environments, and
• achieves the general result its stakeholders desire.
As the number of possible tests for even simple software components is
practically infinite, all software testing uses some strategy to select tests that are
feasible for the available time and resources. As a result, software testing typically
(but not exclusively) attempts to execute a program or application with the intent
of finding software bugs (errors or other defects). The job of testing is an iterative
process as when one bug is fixed, it can illuminate other, deeper bugs, or can even
create new ones.
Software testing can provide objective, independent information about the
quality of software and risk of its failure to users and/or sponsors.
Software testing can be conducted as soon as executable software (even if
partially complete) exists. The overall approach to software development often
determines when and how testing is conducted. For example, in a phased process,
most testing occurs after system requirements have been defined and then
implemented in testable programs. In contrast, under an Agile approach,
requirements, programming, and testing are often done concurrently.

Page 68 of 87
Testing is a critical phase in the software development process, ensuring that the
website, like RewardPlast, functions as intended and meets quality standards. It
involves systematically evaluating the software for errors, bugs, and performance
issues. Here's an overview of testing in the context of our project:

Testing in RewardPlast: Ensuring Functionality and Quality


1.Unit Testing:

- Unit testing is the process of testing individual components or modules of the


website to ensure that each part of the system functions correctly in isolation. In
RewardPlast, this may involve testing specific functions like user registration or
payment processing.

2. Integration Testing:

- Integration testing evaluates how different modules and components of the


system work together. It ensures that the various parts of the website function
cohesively. For RewardPlast, this might involve testing the interaction between the
user panel and the database.

3. Functional Testing:

- Functional testing assesses whether the website's features and functionalities


align with the specified requirements. Test cases are designed to verify that users
can perform actions such as registering, generating recycling requests, and viewing
leaderboards.

4. User Experience (UX) Testing:

- UX testing focuses on the overall user experience, assessing the ease of


navigation, the clarity of user interfaces, and the satisfaction of users as they
interact with the website. It helps ensure that users find the website intuitive and
enjoyable to use.

5. Security Testing:

Page 69 of 87
- Security testing is crucial to identify vulnerabilities in the website that could be
exploited by malicious actors. This involves testing for issues like data breaches,
unauthorized access, and payment security.

6. Performance Testing:

- Performance testing evaluates how the website performs under different


conditions, such as high user loads or slow network connections. It ensures that
RewardPlast remains responsive and efficient even during peak usage.

7. Usability Testing:

- Usability testing involves real users interacting with the website to provide
feedback on its user-friendliness and functionality. This feedback helps identify
areas for improvement in design and usability.

8. Regression Testing:

- Regression testing ensures that new updates or code changes do not introduce
new issues or break existing functionalities. It is essential to maintain the overall
quality of the website as it evolves.

9. Compatibility Testing:

- Compatibility testing checks the website's compatibility with various browsers,


devices, and operating systems to ensure that users have a consistent experience
regardless of their technology choices.

10. Load and Stress Testing:

- Load and stress testing assesses the website's performance under extreme
conditions, such as heavy traffic or sudden spikes in user activity. This testing
ensures that the website remains stable and responsive.

11. User Acceptance Testing (UAT):

- UAT involves users validating whether the website meets their expectations
and is ready for release. It is a crucial step in confirming that the website aligns
with user needs.

12. Documentation and Reporting:

Page 70 of 87
- Throughout the testing process, detailed records are kept of issues, test cases,
and test results. Test reports are created to document the status of the website's
quality.

In summary, testing in RewardPlast is an iterative process that assesses the


functionality, usability, security, and performance of the website. It is a critical
step to identify and address issues before the website is launched, ensuring a high-
quality and reliable user experience.

OUTPUT SCREENS

Page 71 of 87
REWARD.HTML

Page 72 of 87
USER PANEL

ADMIN PANEL

Page 73 of 87
HOME PAGE

PROFILE

Page 74 of 87
GENERATE REQUEST

MY PAYMENTS

Page 75 of 87
LEADER BOARD

CONTACT US

Page 76 of 87
PENDING REQUESTS

RECYCLING CENTERS

Page 77 of 87
PAYMENTS OVERVIEW

LEADERBOARD MANAGEMENT

USER MANAGEMENT

Page 78 of 87
ABOUT US

Page 79 of 87
FAQ’S

FORGET PASSWORD

Page 80 of 87
BIBLIOGRAPHY

 Technical support:
https://chatgpt.com//
https://YouTube.com//
https://github.com//

 Prescribed textbooks
[K.Bala guru swamy]

 Models of sample projects

Page 81 of 87
FUTURE WORK
1.Improved User Experience:

Mobile App: Develop a mobile app to make it more accessible and convenient for
users to report and find plastic collection locations.

User-Friendly Design: Continuously work on improving the website's design and


usability to ensure it's intuitive and easy to navigate.

2.Data Analytics and Visualization:

Data Insights: Implement data analytics to track and visualize trends in plastic
collection, such as popular collection spots, peak collection times, and types of
plastics collected.

3.Interactive Maps:

Create interactive maps that allow users to explore and filter collection points
easily.

4.Community Forums:

Add a community forum or discussion board where users can share tips,
experiences, and best practices related to plastic collection.

5.Social Integration:

Incorporate social media integration to encourage users to share their plastic


collection activities and involve their networks.

6.Education and Awareness:

Develop and provide educational materials on the website about the environmental
impact of plastic pollution and the importance of recycling.

7.Event Promotion:

Promote plastic collection events, workshops, and seminars related to plastic


pollution and recycling.

Page 82 of 87
8.Integration with IoT and Smart Technologies:

Smart Bins: Explore the possibility of integrating IoT sensors with collection bins
to monitor their capacity and notify users when they need emptying.

9.Smart Reporting:

Allow users to report issues with collection points in real-time, such as when bins
are full or damaged.

10.Monetization and Sustainability:

Sponsorships and Partnerships: Collaborate with local businesses, NGOs, and


government agencies for sponsorships or partnerships to ensure the sustainability
of the platform.

11.Gamification:

Implement gamification elements to encourage users to collect more plastic, such


as point systems, badges, and leaderboards.

12.Safety and Security:

Enhance user privacy and data security measures, as the platform may collect
personal information.

Page 83 of 87
CONCLUSION

In conclusion, a REWARDPLAST holds great potential to contribute to the crucial


cause of plastic pollution reduction and recycling. However, its success depends on
continuous improvement and adaptation to the ever-evolving challenges in the
field. Future work for such a website should encompass enhancing the user
experience, utilizing data analytics, fostering community engagement, educating
and raising awareness, exploring smart technologies, ensuring sustainability,
gamification, localization, and much more. By evolving and expanding its features
in response to the needs of its users and the environment, a plastic collection
website can become a powerful tool in the fight against plastic pollution and a hub
for individuals and communities striving to make a positive impact on our planet.

Page 84 of 87
Page 85 of 87
Page 86 of 87
Page 87 of 87

You might also like