0% found this document useful (0 votes)
10 views62 pages

wadf

The document is a project report for 'Hand and Hue', an online art commerce platform developed by students at VNR VJIET for their Bachelor of Technology in Computer Science and Engineering. The platform aims to connect artists directly with buyers, offering user-friendly dashboards for both parties and addressing common issues in traditional art marketplaces. It emphasizes scalability, personalization, and ease of use, utilizing modern web technologies like React.js and Node.js.
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)
10 views62 pages

wadf

The document is a project report for 'Hand and Hue', an online art commerce platform developed by students at VNR VJIET for their Bachelor of Technology in Computer Science and Engineering. The platform aims to connect artists directly with buyers, offering user-friendly dashboards for both parties and addressing common issues in traditional art marketplaces. It emphasizes scalability, personalization, and ease of use, utilizing modern web technologies like React.js and Node.js.
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/ 62

HAND AND HUE

A Course Based Project Report Submitted in partial fulfilment of the requirements for the
award of the degree of

BACHELOR OF TECHNOLOGY IN
COMPUTER SCIENCE AND
ENGINEERING
Submitted by

MS. PUCHAKAYALA SAMHITHA 23071A05J7


MS. RANGU CHETANA 23071A05J8
MS. TANDRA VAISHNAVI 23071A05K1
MS. THUMANAPELLI SPOORTHI 23071A05K2

Under the Guidance of


I.Ravindra Kumar
Associate Professor, Department of CSE, VNR VJIET

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING

VALLURUPALLI NAGESWARA RAO VIGNANA JYOTHI INSTITUTE OF


ENGINEERING & TECHNOLOGY
An Autonomous, ISO 9001:2015 & QS I-Gauge Diamond Rated Institute, Accredited by NAAC with ‘A+
+’ Grade NBA Accreditation for B.Tech. CE,EEE,ME,ECE,CSE,EIE,IT,AME, M.Tech. STRE, PE, AMS,
SWE Programmes Appro ved by AICTE, New Delhi, Affiliated to JNTUH, NIRF (2023) Rank band:101-
150 in Engineering Category
College with Potential for Excellence by UGC,JNTUH-Recognized Research Centres:CE,EEE,ME,ECE,CSE
Vignana Jyothi Nagar, Pragathi Nagar, Nizampet (S.O.), Hyderabad – 500 090, TS, India.
APRIL, 2025

VI
VALLURUPALLI NAGESWARA RAO VIGNANA JYOTHI INSTITUTE OF
ENGINEERING and TECHNOLOGY
An Autonomous, ISO 9001:2015 & QS I-Gauge Diamond Rated Institute, Accredited by NAAC with ‘A++’ Grade
NBA Accreditation for B.Tech. CE,EEE,ME,ECE,CSE,EIE,IT,AME, M.Tech. STRE, PE, AMS, SWE Programmes
Approved by AICTE, New Delhi, Affiliated to JNTUH, NIRF (2023) Rank band:101-150 in Engineering Category
College with Potential for Excellence by UGC,JNTUH-Recognized Research Centres:CE,EEE,ME,ECE,CSE
Vignana Jyothi Nagar, Pragathi Nagar, Nizampet (S.O.), Hyderabad – 500 090, TS, India.
DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING

CERTIFICATE
This is to certify that the project report entitled “HAND AND HUE” is a bonafide work done
under our supervision and is being submitted by Miss.Puchakayala Samhitha
Reddy(23071A05J7), Miss. Rangu Chetana(23071A05J8), Miss. Tandra Vaishnavi
(23071A05K1), Miss. Thummanapelli Spoorthi(23071A05K2) in partial fulfilment for the
award of the degree of Bachelor of Technology in Computer Science and Engineering, of
VNRVJIET, Hyderabad during the academic year 2024- 2025.
Certified further that to the best of our knowledge the work presented in this thesis has not
been submitted to any other University or Institute for the award of any Degree or Diploma.

I Ravindra Kumar Dr. V Baby


Assistant Professor & Internal Guide Assoc. Professor & HOD
CSE Department, VNR VJIET CSE & CSBS, VNR VJIET

Signature of the External Examiner with date

VI
VALLURUPALLI NAGESWARA RAO VIGNANA JYOTHI INSTITUTE OF
ENGINEERING and TECHNOLOGY
An Autonomous, ISO 9001:2015 & QS I-Gauge Diamond Rated Institute, Accredited by NAAC with ‘A++’ Grade
NBA Accreditation for B.Tech. CE,EEE,ME,ECE,CSE,EIE,IT,AME, M.Tech. STRE, PE, AMS, SWE Programmes
Approved by AICTE, New Delhi, Affiliated to JNTUH, NIRF (2023) Rank band:101-150 in Engineering
CategoryCollege with Potential for Excellence by UGC,JNTUH-Recognized Research Centres:CE,EEE,ME,ECE,CSE
Vignana Jyothi Nagar, Pragathi Nagar, Nizampet (S.O.), Hyderabad – 500 090, TS, India.

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING

DECLARATION

We declare that the course based project work entitled entitled “HAND AND HUE”
submitted in the department of Computer Science and Engineering, Vallurupalli Nageswara Rao
Vignana Jyothi Institute of Engineering and Technology, Hyderabad, in partial fulfilment of the
requirement for the award of the degree of Bachelor of Technology in Computer Science and
Engineering is a bonafide record of our own work carried out under the supervision of I.
Ravindra Kumar, Assistant Professor, Department of CSE, VNRVJIET. Also, we
declare that the matter embodied in this thesis has not been submitted by us in full or in any part
thereof for the award of any degree/diploma of any other institution or university previously.
Place: Hyderabad.

Puchakayala Rangu Tandra Thumanapelli


Samhitha Chetana Vaishnavi Spoorthi
(23071A05J7) (23071A05J8) (23071A05K1) (23071A05K2)

VI
ACKNOWLEDGEMENT

Firstly, we would like to express our immense gratitude towards our institution VNR
Vignana Jyothi Institute of Engineering and Technology, which created a great platform to
attain profound technical skills in the field of Computer Science, thereby fulfilling our
most cherished goal.

We are very much thankful to our Principal, Dr. Challa Dhanunjaya Naidu and our
Head of Department, Dr. V. Baby, for extending their cooperation in doing this project in
stipulated time.

We extend our heartfelt thanks to our project guide, I.Ravindra Kumar and Mr .P.
Rajesh, for their guidance throughout the course of our project.

Last but not least, our appreciable obligation also goes to all the staff members of
Computer Science & Engineering department and to our fellow classmates who directly or
indirectly helped us.

P.SAMHITHA 23071A05J7
R.CHETANA 23071A05J8
T.VAISHNAVI
23071A05K1
T.SPOORTHI 23071A05K2

VI
ABSTRACT

As online marketplaces become increasingly popular, there are new opportunities for artists to
display and sell their pieces on the internet. Hand and Hue is an online art commerce platform with the
goal of bridging the gap between artists and people who appreciate art through a very user-friendly,
visually engaging, and user-first interface. Built with the latest web technologies like React.js on the
frontend and Postman for API testing and validation, the platform provides end-to-end seamless
navigation and interaction for buyers as well as sellers.

The platform has separate dashboards for both users and sellers. Sellers are provided with a specific
dashboard where they can control their profile, upload and update artwork using a simple form, see their
listings, and monitor orders. Meanwhile, users can browse curated collections, access rich product pages
that are supported by multimedia, and purchase artworks securely, providing an immersive and
seamless buying process.

Hand and Hue tackles typical issues in online art business platforms, including shortage of
personalization, restricted control for sellers, and complex user interfaces. Through the emphasis on
modularity, simplicity, and design aesthetic, the site guarantees scalability and future-proofing for
advancements such as real-time messaging between buyers and artists, and mobile app integration.

Developed on responsive design guidelines and tested for API stability, Hand and Hue provides an
efficient, secure, and artist-friendly e-commerce solution. It is a technological and creative blueprint for
future digital marketplaces that intend to empower individual creators within the art world.

VI
INDEX

CONTENT PAGE NO

CHAPTER 1: INTRODUCTION 7 - 10

1.1 Introduction 7

1.2 Problem Statement 7


1.3 Scope of the Project 8-9

1.4 Objectives of the Project 9-10

CHAPTER 2: EXISTING TECHNIQUES AND SYSTEMS 11 – 13

CHAPTER 3: SOFTWARE REQUIREMENTS 14 – 16


3.1 Introduction 14

3.2 Software Requirements 14

3.3 Hardware Requirements 15

3.4 Functional Requirements 15

3.5 Non- Functional Requirements 16

CHAPTER 4: PROPOSED SYSTEM 17 - 18

4.1 Introduction 17
4.2 System Architecture 17-18

CHAPTER 5: IMPLEMENTATION 19-40

CHAPTER 6: RESULTS 41-46

CONCLUSION 47

FUTURE WORK 48

REFERENCES 49

6
CHAPTER 1: INTRODUCTION

1.1 INTRODUCTION

Hand and Hue is a modern web-based platform designed to empower artists by providing a dedicated
space to showcase and sell their artwork directly to a global audience. By eliminating traditional barriers
and intermediaries, the platform fosters a more inclusive and accessible art marketplace.

Utilizing contemporary web technologies, Hand and Hue offers distinct dashboards for sellers and
buyers. Artists can effortlessly upload their creations, manage their portfolios, and engage with potential
buyers. Simultaneously, art enthusiasts can explore a curated collection of artworks, ensuring a seamless
and personalized purchasing experience.

In an era where digital platforms are reshaping commerce and creativity, Hand and Hue stands out by
prioritizing user-centric design, scalability, and simplicity. Its responsive interface ensures accessibility
across various devices, catering to a diverse, global community of art lovers.

As the digital art market continues to evolve, platforms like Hand and Hue play a pivotal role in
democratizing access to art, supporting independent artists, and fostering a vibrant online art
community.

1.2 PROBLEM STATEMENT

In the contemporary digital landscape, artists and artisans often face significant challenges in reaching
broader audiences and effectively marketing their creations. Traditional art marketplaces and galleries
can be restrictive, often favoring established names and limiting opportunities for emerging talents.
Moreover, existing online platforms may not provide the necessary tools or visibility for artists to
showcase their work to potential buyers. Additionally, buyers interested in unique, handcrafted artworks
may struggle to find authentic pieces amidst a sea of mass-produced items. The lack of a centralized,
user-friendly platform that connects artists directly with consumers hampers the growth of independent
art commerce.
Hand and Hue aims to address these issues by creating a dedicated online marketplace that empowers
artists to present and sell their work directly to a global audience. By providing tailored dashboards for
both sellers and buyers, the platform facilitates seamless interactions, enhances visibility for creators,
and offers consumers access to a diverse range of authentic artworks.

7
Through this initiative, Hand and Hue seeks to democratize the art-selling process, foster a supportive
community for artists, and enrich the purchasing experience for art enthusiasts worldwide.

1.3 SCOPE OF THE PROJECT


1. Platform Features & Functionalities
1.1 Seller Features (Artist Dashboard)
 Seller Registration & Authentication
Secure signup and login for artists with access to a personalized seller dashboard.
 Artwork Upload & Management
Structured form for posting artwork with fields for title, description, price, category, and image
upload.
 Seller Dashboard Interface
Centralized panel to manage all listed artworks, track sales, and view engagement statistics.
 Profile Management
Ability to edit personal and store-related information such as artist bio, profile picture, and
contact details.
 Order Management
View and manage orders placed by users, including status updates and sales history.
 Responsive Design
Dashboard optimized for usability across devices, ensuring ease of access for sellers on-the-go.
1.2 Buyer Features (User Dashboard)
 User Registration & Authentication
Secure sign-up and login system with access to buyer-specific features.
 Artwork Browsing & Discovery
Explore a curated collection of artworks using filters like category, price, and artist name.
 Product Detail Pages
View detailed information on individual artworks, including high-resolution images, artist info,
and purchase options.
 Cart & Checkout
Add items to cart and complete purchases securely through an integrated payment gateway.
 Favorites & Wishlist
Save favorite artworks to a wishlist for future purchases or reference.
 Profile Management

8
Update personal information and track purchase history through a simple, clean interface.
 Responsive UX Design
Intuitive, aesthetically pleasing interface tailored for a seamless shopping experience across
devices.

2. Technical Architecture
2.1 Frontend (Client Side)
 Developed using React.js for a responsive, component-based UI.
 Implements role-based dashboards for buyers and sellers.
 Uses Axios or Fetch API to communicate with backend services via RESTful APIs.
 Handles routing using React Router.
 Provides form validations, image uploads, and a visually rich product display interface.
2.2 Authentication & Authorization
 Secure JWT-based authentication for both users and sellers.
 Role-based access control ensures only authorized users can access specific features or
dashboards.
 Login/Signup flows are validated on both frontend and backend.
2.3 Backend (Server Side)
 Built with Node.js and Express.js for handling HTTP requests and server-side logic.
 Manages APIs for:
o User registration and login
o Artwork posting and retrieval
o Profile updates
o Order management
 Middleware is used for authentication and request validation.
3. Future Enhancements
 Payment Gateway Integration
Enable secure and seamless transactions using Razorpay or similar platforms.
 Multilanguage Support
Add support for multiple languages using i18n for a more inclusive user experience.

9
 Mobile App Extension
Launch a mobile version of the platform for buyers and sellers using React Native or Flutter.

10
CHAPTER 2: EXISTING TECHNIQUES AND SYSTEMS

Traditional Art Marketplaces


Traditional art marketplaces, both physical galleries and limited online spaces, have long been the way
artists and buyers connect. These systems often rely on in-person exhibitions, physical galleries, or
simple online platforms where transactions are limited, and interaction is basic.

Key Technologies in Traditional Art Marketplaces:


 Gallery Spaces
Physical locations for displaying and selling artwork.
 Catalogs & Printed Materials
Printed brochures and catalogs for showcasing art collections.
 Offline Auctions & Exhibitions
Traditional methods for art sales, usually requiring physical presence and live interactions.
 Art Fairs & Galleries
Venues where artists display and sell their works directly to collectors.
 Manual Sales Transactions
Payment processing done through checks, cash, or credit transactions at art events.

Limitations of Traditional Art Marketplaces


 Limited Reach
Physical galleries and events are location-bound, limiting visibility for artists.
 High Costs
Gallery commissions, exhibition fees, and transportation costs for artists.
 Accessibility Barriers
Restricted access for buyers and artists due to geographic, time, and financial constraints.
 Limited Personalization
Generic curation of art that doesn’t cater to the specific tastes of buyers and needs of individual
buyers.
 Lack of Transparency
Limited visibility into artist histories, artworks, and transaction processes.
Rise of Online Art Marketplaces:
In response to these traditional shortcomings, online platforms like Hand and Hue have emerged,
transforming how art is bought, sold, and experienced, with added conveniences and opportunities for
both buyers and sellers.

Popular Art E-Commerce Platforms

11
 Saatchi Art
A platform for buying and selling original artwork, offering global reach for artists.
 Etsy
Popular for handmade and vintage art, facilitating an easy-to-use marketplace for independent
artists.
 Artfinder
A global marketplace for independent artists to showcase and sell their artwork.
 Artsy
Focuses on connecting collectors with galleries and exhibitions, primarily offering high-end art.

Common Challenges with These Platforms


 High Fees
Many platforms charge high commissions for sales and listing fees, affecting artists’ profits.
 Limited Interaction
Lack of personalized communication between buyers and sellers, hindering buyer confidence.
 Quality Control
Varying standards for art quality, leading to buyer dissatisfaction.
 Complex User Experience
Some platforms are difficult to navigate for casual art buyers or new users.

The Digital Shift: Key Benefits of Online Art Marketplaces


Online platforms like Hand and Hue capitalize on the growing demand for digital art markets,
enhancing accessibility, engagement, and the overall experience of buying and selling artwork.

Key Advantages of Online Art Marketplaces


 Global Accessibility
Artists can reach buyers from around the world without geographic limitations.
 Personalized Art Discovery
Tailored recommendations based on buyer preferences and past purchases.
 Seamless Transactions
Integrated payment gateways and shipping services make buying and selling art simpler.
 Reduced Costs for Artists
Lower overhead costs for artists as they don’t need to rent gallery spaces or participate in
expensive physical exhibitions.
 Digital Catalogs & Profiles
Artists can maintain an organized portfolio online, with interactive profiles and a broad audience
reach.

Emerging Trends and Innovations in Art Marketplaces:

12
The art marketplace continues to evolve, with innovations enhancing the buying and selling process.
These trends are shaping the future of platforms like Hand and Hue:
 AI-Driven Personalization
Using AI to suggest artworks based on individual buyer tastes, past purchases, and browsing
behavior.
 Blockchain for Provenance
Implementing blockchain technology to verify and track the authenticity of artworks, ensuring
transparency.
 Augmented Reality (AR)
Allowing buyers to visualize artworks in their homes or spaces before purchase, creating an
immersive shopping experience.
 Virtual Art Exhibitions
Hosting online art exhibitions or live-streamed art shows, where buyers can interact with artists
virtually.
 Social Shopping
Integrating social media elements, enabling users to share their favorite artwork and receive
recommendations from their network.
 Customizable Art
Offering buyers the option to commission personalized or custom artwork from artists directly
through the platform.

Hand and Hue’s Role in the Digital Art Ecosystem:

Hand and Hue is designed to bridge the gap between traditional art marketplaces and modern digital
platforms. By leveraging contemporary technologies, it empowers both buyers and sellers to engage
in an enriching art experience.

Key Features and Philosophies


 Simplicity with Creativity
An intuitive interface for easy browsing, buying, and selling of artwork with a creative, user-
centric design.
 Modular Architecture
The platform is designed to easily integrate new features and technologies, such as AI
recommendations and virtual exhibitions.
 Security & Transparency
Secure payment gateways and blockchain-based provenance systems ensure trust and
authenticity for buyers and sellers.
 Future-Ready Design
Built with modern technologies like React.js for responsive design and scalability, allowing for
future enhancements such as AI-based personalization and mobile application extensions.

13
This content outlines Hand and Hue’s approach to revolutionizing the online art marketplace
by addressing the shortcomings of traditional art systems while leveraging modern technologies for a
seamless, secure, and personalized user experience.

14
CHAPTER 3: PROPOSED SYSTEM

4.1 INTRODUCTION
The proposed system for Hand and Hue aims to provide an innovative, seamless,
and secure e-commerce platform dedicated to buying and selling art. The system is
designed to offer a unique space for artists to showcase their work while providing
buyers with a personalized, intuitive browsing experience.
Unlike generic e-commerce platforms, Hand and Hue is focused on providing an
immersive art experience, integrating art purchasing with features like artist profiles,
reviews, and custom artwork listings. The platform is also designed to grow with
future integrations, including enhanced AI-driven recommendations, payment
gateways, and mobile apps.
The system focuses on scalability, security, and user-centric design, making it
suitable for artists, art buyers, and administrators alike. It is modular, allowing for
future enhancements like AI integration for personalized recommendations, advanced
search filters, and real-time notifications.

4.2 SYSTEM ARCHITECTURE


The Hand and Hue system is architected using a modular client-server model that
emphasizes security, performance, and scalability. The system follows a three-tier
architecture—presentation, application logic, and data management—ensuring clean
separation of concerns and enabling extensibility for future features.

1. Presentation Layer (Frontend)


 Responsive Design
Ensures a seamless user experience across desktop, tablet, and mobile devices
using Bootstrap and CSS Media Queries.
 Routing
o React Router handles client-side navigation for dynamic page loading.
o Route-based code splitting for performance optimization, allowing for lazy
loading of sections.
o Protected Routes for role-based access (e.g., buyer, seller, admin).

2. Application Logic Layer (Services & APIs)


 Microservice-ready Backend (Planned)

15
o Authentication Service: Stateless authentication using JWT tokens to secure
user sessions and provide role-based access.
o Artwork Management API: Handles CRUD operations (Create, Read,
Update, Delete) for artwork listings, managing the artist's portfolio and art
details.
o User Profile Service: Manages user data such as registration, profile
customization, and preferences (for both buyers and sellers).
o Order Management API: Handles user transactions, shopping cart
management, order history, and payment status.
 API Gateway (Planned)
o Centralized request routing and API management.
o Secure HTTPS endpoints with rate-limiting, authentication, and validation
middleware for enhanced security.

3. Data Management Layer


 Hybrid Persistence Strategy (Planned)
o MongoDB for flexible and scalable storage of unstructured data, such as
artwork descriptions, images, and user-generated content.
 Backup & Monitoring
o Automated database backups to ensure data integrity and recovery.
 Payment Integration
o Planned integration with trusted payment gateways for secure and seamless
financial transactions.

16
CHAPTER 4: OBJECTIVES OF THE PROJECT
1. Empower Artists and Independent Creators

 Direct Market Access: Artists can list and sell their artworks without
intermediaries, enabling better profit margins.

 Control Over Pricing: Artists set their own pricing and manage their sales
strategies.

 Portfolio Management: Ability for sellers to create, update, and manage their
digital portfolio on the platform.

 Global Reach: Artists can showcase their work to a global audience, increasing
exposure and sales opportunities.

 Reduced Barriers: Eliminates the need for physical galleries and traditional art
marketplaces, democratizing the art-selling process.

 Support for New Artists: Offering guidance, tutorials, or community-building


tools for emerging talents to gain visibility.
2. Simplify and Enhance the User Experience

 Intuitive User Interface: A clean, visually appealing, and easy-to-navigate design


for both buyers and sellers.

 Artwork Discovery: Implement a powerful search and filter system that allows
buyers to easily find artworks by category, artist, price, or style.

 Personalized Recommendations: Suggest artworks based on the buyer’s


browsing history, preferences, and past purchases.

 Smooth Transaction Flow: Simplified checkout process for buyers with easy cart
management and quick payment options.

 Seller Dashboard: An easy-to-use control panel for sellers to manage artwork

17
listings, view sales, and analyze performance metrics.

 Mobile Responsiveness: A platform that provides a consistent and optimized


experience across all devices, including mobile and desktop.
3. Promote Art Discovery and Community Engagement

 Curated Art Collections: Highlight featured or trending artworks to engage


buyers and encourage exploration.

 Artist Profiles and Bios: Enable buyers to learn more about the artists, fostering a
personal connection and encouraging purchases.
4. Facilitate Seamless Transactions and Efficient Order Management

 Secure Checkout System: Provide a smooth and secure checkout process with
multiple payment methods and options.

 Seller Order Management: Sellers can view and manage orders, update order
statuses, and process returns or cancellations.
5. Encourage Trust and Transparency

 Reviews and Ratings System: Enable buyers to leave ratings and reviews for
artworks and sellers, enhancing trust and providing valuable feedback.

 Seller Verification: Implement a verification system for sellers to enhance


credibility and minimize fraud.

 Transparent Pricing: Ensure clear, transparent pricing without hidden fees,


building trust with buyers.

 Clear Return/Refund Policies: Define and communicate fair and transparent


return and refund policies for buyers and sellers.
6. Foster Global Art Community and Market Reach

 Multilingual Support: Enable multiple languages to cater to a global audience


18
and increase user inclusivity.

 International Shipping Options: Offer shipping solutions that allow sellers to


reach international buyers.

 Cross-Cultural Art Exchange: Promote global art by allowing users from


different regions to discover and purchase international pieces.

 Localization: Localize the platform for different regions to ensure the content and
interface meet the cultural and business expectations of each region.

19
CHAPTER 5: SOFTWARE REQUIREMENTS

3.1 INTRODUCTION

This chapter outlines the technical specifications required to develop and deploy Hand and Hue,
categorizing the requirements into both functional and non-functional aspects to ensure the
platform is user-friendly, scalable, and robust.

3.2 SOFTWARE REQUIREMENTS


Operating System:

 Windows 10/11, Ubuntu Linux, or macOS

Frontend Framework:

 React.js (for building dynamic and responsive user interfaces)

API Testing Tool:

 Postman (for testing and validating API endpoints)

Programming Languages:

 JavaScript (ES6+), HTML5, CSS3 (for building the interactive web application)

Development Tools:

 Visual Studio Code (code editor)

 Node.js (runtime environment for JavaScript)

 npm (Node Package Manager for managing packages and dependencies)

Version Control System:

 Git (for version control) with GitHub or GitLab repositories (for collaboration and source code
management)

Backend:

 Node.js (for server-side development)

20
 Express.js (framework for building the RESTful API)

 MongoDB (for database management, handling user data and artwork details)

 Mongoose (for MongoDB object modeling and validation)

Additional Libraries:

 Axios (for API requests)

 React Router (for routing and handling page navigation)

 Redux (optional) (for state management across components)

 Material UI / Bootstrap (for styling UI components and ensuring responsiveness)

 Cloudinary (for image storage and manipulation)

3.3 HARDWARE REQUIREMENTS

For Development:
 Processor: Intel Core i5 or above
 Memory (RAM): Minimum 8GB (Recommended 16GB for better performance)
 Storage: Minimum 500GB HDD or 256GB SSD
 Display: 1080p Full HD monitor
 Internet Connectivity: Stable broadband connection for accessing development libraries, APIs,
and deployment tools
For End-Users (Buyers and Sellers):
 Web Browsers: Chrome, Firefox, Edge (latest versions)
 Mobile Devices: Android 8.0+ / iOS 12+
 Internet Speed: Minimum 5 Mbps for smooth browsing and transactions

21
3.4 FUNCTIONAL REQUIREMENTS
User Management:

 Registration & Login: Email-based sign-up/login, with future support for social
login.
 Profile Customization: Option to update bio, profile picture, password, and
display user-specific preferences.
 Role-Based Access: Buyers and Sellers have different roles and access to
personalized dashboards.
Art Management (Seller Features):
 Post Artworks: Sellers can upload, manage, and list their artworks with
descriptions, pricing, and categories.
 Artwork Categorization: Organize artworks by medium, style, price range, etc.
 Visibility Control: Option to save listings as drafts or make them public.
Buyer Features:
 Browse & Search Artworks: Users can filter artworks based on categories, style,
price, and artist.
 Add to Cart & Checkout: Buyers can add artworks to the cart and complete
transactions.
 Purchase History: Track previous purchases and view order details.
 Wishlist: Save favorite artworks for future viewing or purchasing.
Engagement & Notifications:
 Review & Rating System: Allow buyers to rate and review artworks.
 Notifications: Updates on new listings, price changes, and order status via email
and in-app notifications.
 Feedback System: Enable buyers and sellers to provide feedback to enhance the
platform experience.
Security & Access:

22
 Session Handling: Auto logout on inactivity for security.
 JWT Authentication: Secure login, role-based access control, and protected
routes

3.5 NON-FUNCTIONAL REQUIREMENTS


Security:
 Data Encryption: Use HTTPS and TLS 1.2+ to ensure secure data transmission.
 Secure HTTP: Enforce HTTPS for all communication.
 Password Encryption: Securely hash passwords using bcrypt or a similar algorithm.
Scalability:
 Modular Design: Platform architecture should be scalable to accommodate increasing users,
artworks, and transactions, with cloud support for storage and services.
Performance:
 Optimized Frontend: Ensure sub-2-second load times and fast navigation via code and asset
optimization (e.g., lazy loading).
 Efficient Data Handling: Implement caching strategies for artworks and buyer data to minimize
load times.
Maintainability:
 Modular Codebase: Use clean, reusable components to make future updates and debugging
easy.
 Documentation: Proper documentation for both users and developers for easy troubleshooting
and onboarding.
User Experience (UX):
 Simple Navigation: Consistent and intuitive UI for easy browsing and interaction with artworks.
 Responsive UI: Adaptive design for both mobile and desktop users.
 Interactive UI Elements: Smooth transitions, hover effects, and interactive elements to engage
users

23
CHAPTER 5: ARCHITECHTURE DIAGRAM

Hand-and-Hue Architecture Explanation


Overview
Hand-and-Hue is a full-stack web application designed as an online art marketplace connecting
artists/sellers with art enthusiasts. The application follows a modern client-server architecture with clear
separation of concerns between frontend and backend components.
Client-Side Architecture
Components Layer
 UI Components: ArtCard, ArtGallery, CategoryFilter - responsible for rendering visual
elements
 Functional Components: CommentSection, SellerArts, SellerForm - handle specific
functionality
 Layout Components: Header and Footer - maintain consistent structure throughout the
application
Pages Layer
 Public Pages: Home, ArtDetails, Login, Register - accessible to all users

24
 User Pages: CartPage, WishlistPage, Profile - for authenticated users
 Dashboard Pages: UserDashboard and SellerDashboard - personalized interfaces
 Listings: SellersList - for discovery and browsing
Context Layer
 AuthContext: Manages authentication state, sessions, and login/logout functionality
 UserContext: Provides user data and preferences across the application
Application Core
 App.jsx: Root component setting up routing and global providers
 main.jsx: Entry point rendering the React application to DOM
Server-Side Architecture
Routes Layer
 apiRoutes.js: General API endpoints and utilities
 artRoutes.js: CRUD operations for artwork management
 sellerRoutes.js: Seller-specific functionality
 userRoutes.js: User authentication and profile management
Models Layer
 artModel.js: Database schema for artwork data
 userModel.js: User data structure and validation
Middleware
 auth.js: Authentication and authorization
 Request processing and validation
Server Core
 server.js: Main entry point
 Database connection management
 API configuration and security
Data Flow
1. User interacts with React components in the client
2. Client sends HTTP requests to appropriate server routes
3. Server middleware processes and validates requests
4. Server routes handle business logic and database operations
5. Database stores and retrieves persistent data
6. Server sends JSON responses back to client
7. Client updates UI based on received data
This architecture provides a scalable foundation for the Hand-and-Hue marketplace, with clear

25
separation between presentation logic (client) and business logic (server).

26
CHAPTER 6: MODULES
hand-and-hue/
├── client/
│ ├── node_modules/
│ ├── public/
│ ├── src/
│ │ ├── assets/
│ │ ├── components/
│ │ │ ├── ArtCard.jsx
│ │ │ ├── ArtCard.css
│ │ │ ├── ArtGallery.jsx
│ │ │ ├── ArtGallery.css
│ │ │ ├── CategoryFilter.jsx
│ │ │ ├── CommentSection.jsx
│ │ │ ├── Footer.jsx
│ │ │ ├── Header.jsx
│ │ │ ├── SellerArts.jsx
│ │ │ ├── SellerForm.jsx
│ │ ├── context/
│ │ │ ├── AuthContext.jsx
│ │ │ ├── UserContext.jsx
│ │ ├── pages/
│ │ │ ├── ArtDetails.jsx

27
│ │ │ ├── CartPage.jsx
│ │ │ ├── Home.jsx
│ │ │ ├── Home.css
│ │ │ ├── Login.jsx
│ │ │ ├── Login.css
│ │ │ ├── Register.jsx
│ │ │ ├── Register.css
│ │ │ ├── Profile.jsx
│ │ │ ├── SellerDasboard.jsx
│ │ │ ├── SellersList.jsx
│ │ │ ├── UserDasboard.jsx
│ │ │ ├── UserDashboard.css
│ │ │ ├── WishlistPage.jsx
│ │ ├── App.jsx
│ │ ├── App.css
│ │ ├── index.css
│ │ ├── main.jsx
│ ├── .env
│ ├── .gitignore
│ ├── eslint.config.js
│ ├── index.html
│ ├── package.json
│ ├── package-lock.json
│ ├── README.md
28
│ ├── vite.config.js
├── server/
│ ├── middleware/
│ │ ├── auth.js
│ ├── models/
│ │ ├── artModel.js
│ │ ├── userModel.js
│ ├── node_modules/
│ ├── routes/
│ │ ├── apiRoutes.js
│ │ ├── artRoutes.js
│ │ ├── sellerRoutes.js
│ │ ├── userRoutes.js
│ ├── .env
│ ├── .gitignore
│ ├── package.json
│ ├── package-lock.json
│ ├── req.http
│ ├── server.js
FRONTEND – client/src/
App.jsx
The root component that defines the structure and routing for the app.
It usually includes the BrowserRouter and Routes components to manage navigation.
All main pages like Home, Login, Register, and Dashboards are rendered through this file.
main.jsx

29
Entry point of the React application, used by Vite to render the App component.
Wraps the app in providers like AuthContext or UserContext if needed.
components/
▶ ArtCard.jsx
Renders individual cards for artwork showing image, title, and price.Used inside gallery or seller views
to represent artworks visually.
Each card may link to the detailed view via ArtDetails.
▶ ArtGallery.jsx
1.Displays a grid or list of multiple ArtCard components.
2.It may accept props for filtering or sorting the artworks.
3.Helps in showcasing all artworks or search results to users.
▶ CategoryFilter.jsx
Enables users to filter artworks by specific categories (e.g., painting, sculpture).
Triggers changes in displayed items on selection.
Improves navigation and user experience in browsing.
▶ Footer.jsx
Static component shown at the bottom of all pages.
Usually includes site info, contact links, and legal disclaimers.
Helps in maintaining consistent UI across pages.
▶ Header.jsx
Top navigation bar shown across all pages.
Contains links to Home, Login/Register, Cart, and Dashboard.
Also conditionally renders based on user role or authentication.
▶ SellerArts.jsx
Displays a seller's own uploaded artworks.
Used in the SellerDashboard for managing listings.
Includes options for edit, delete, or view each art item.
pages/
▶ ArtDetails.jsx
Detailed view of a specific art item.
Shows full image, title, seller info, description, price, and comments.
Includes "Add to Cart", "Add to Wishlist", and possibly "Buy Now" buttons.
▶ CartPage.jsx
Shows the user's shopping cart with a list of added items.
Allows users to modify quantity, remove items, and proceed to checkout.
Calculates total cost dynamically and interacts with backend if needed.

30
▶ Home.jsx
Main landing page displaying featured arts, categories, and call-to-action banners.
Uses ArtGallery and CategoryFilter to show artworks.
Acts as the central point to attract and direct users.
▶ Login.jsx
Handles user login with email and password form.
On successful authentication, stores user token/context and redirects.
Includes error validation and user feedback for invalid attempts.
▶ Register.jsx
Form for creating new user or seller accounts.
Includes fields for name, email, password, confirm password, and user type.
After successful signup, redirects users to login or dashboard.
▶ Profile.jsx
Allows users to view and update their profile information.
Fields like name, email, password can be edited.
It may also show their account activity or orders.
▶ SellerDashboard.jsx
Main control panel for seller accounts.
Displays seller’s artworks, upload options (SellerForm), and buyer interactions.
Empowers sellers to manage and grow their store on the platform.
▶ UserDashboard.jsx
Personalized dashboard for regular users (buyers).
Shows past orders, saved items, and profile info.
May include quick links to Wishlist, Cart, or Logout.
▶ WishlistPage.jsx
Displays artworks the user has saved to their wishlist.
Allows moving items to the cart or removing from wishlist.
Acts as a reminder list and supports future purchases.

context/
▶ AuthContext.jsx
Handles global authentication state across the app.
Provides methods like login, logout, and keeps user info in context.
Used to show/hide components based on login status or role.

BACKEND – server/

31
✅ server.js
Entry point for the Node.js/Express backend server.
Sets up middleware, connects to MongoDB, and registers all routes.
Runs the server and listens for API requests from the frontend.

middleware/
▶ auth.js
Middleware to protect private routes.
Verifies JWT tokens to authenticate requests.
Used for actions like uploading art, updating profile, or accessing dashboards.

models/
▶ artModel.js
Mongoose schema for artworks in the database.
Defines fields like title, description, image, category, price, and sellerId.
Used by routes to create, read, update, or delete art items.
▶ userModel.js
Mongoose schema for user and seller accounts.
Includes name, email, password (hashed), role (user/seller), and metadata.
Manages authentication, dashboard access, and account settings.

routes/
▶ apiRoutes.js
Main API router that combines all sub-routes (user, art, seller).
Centralized entry point for all route paths.
Helps in organizing and modularizing the route structure.
▶ artRoutes.js
Handles endpoints for artworks like:
 GET all artworks
 GET by ID
 POST new art (seller only)
 DELETE or PUT (edit)
Connects with artModel and uses auth.js middleware.
▶ sellerRoutes.js

32
Routes specific to seller operations.
Includes endpoints for viewing seller profiles, listing their arts, etc.
Allows sellers to interact with the system securely.
▶ userRoutes.js
Handles authentication (login/register) and profile routes.
Manages JWT issuance and user data updates.
Used by Login, Register, and Profile frontend pages.

33
CHAPTER 7: IMPLEMENTATION

Key Features of this Web Application:


1.User Dashboard Features
 Art Exploration
o View all artworks posted by various sellers.
o Filter artworks by category (e.g., painting, sculpture, jewelry).
o Filter artworks by seller for artist-specific collections.
 Wishlist Functionality
o Save favorite artworks for future purchase or inspiration.
 Cart Management
o Add items to cart and proceed with a simulated checkout (if implemented).
 Profile Section
o Manage personal information and view order history (if integrated).

2. Seller Dashboard Features


 Post Artwork
o Upload and list new artworks with images, descriptions, category, and pricing.
o Edit or delete existing listings.
 Seller Profile
o Showcase all artworks by the seller.
o Update personal details and business bio.
 View User Engagement
o Track likes, comments (if available), and interactions on listed items.

3. Filtering & Browsing Capabilities


 Category-Based Filtering

34
o Browse artwork by tags such as painting, ceramic, textile, etc.
 Seller-Based Filtering
o View artworks posted by specific sellers or favorite artists.

userSchema.js

const mongoose = require('mongoose');

const cartItemSchema = new mongoose.Schema({


artId: { type: mongoose.Schema.Types.ObjectId, ref: 'Art' },
quantity: { type: Number, default: 1, min: 0 }
});

const wishlistItemSchema = new mongoose.Schema({


artId: { type: mongoose.Schema.Types.ObjectId, ref: 'Art' }
});

const userSchema = new mongoose.Schema({


name: { type: String, required: true },
email: { type: String, required: true, unique: true },
password: { type: String, required: true },
role: { type: String, default: 'user' },
cart: [cartItemSchema],
wishlist: [wishlistItemSchema],
orders: [{ type: mongoose.Schema.Types.ObjectId, ref: 'Art' }]
}, { timestamps: true });

const User = mongoose.model('User', userSchema);


module.exports = User;

artSchema.js:
const mongoose = require('mongoose');

// User Comment Schema


const userCommentSchema = new mongoose.Schema({
nameOfUser: {
type: String,
required: true
},
comment: {
type: String,
required: true

35
},
profileImageUrl: {
type: String,
required: true
}
}, { _id: false });

// Seller Details Schema


const sellerDetailsSchema = new mongoose.Schema({
name: { type: String, required: true },
email: { type: String, required: true },
phone: { type: String }, // Optional
address: { type: String }, // Optional
profileImage: { type: String }, // Optional
}, { _id: false });

// Art Schema
const artSchema = new mongoose.Schema({
title: { type: String, required: true },
description: { type: String, required: true },
price: { type: Number, required: true },
category: { type: String, required: true },
image: { type: [String], required: true },
sellerDetails: sellerDetailsSchema, // Embed seller details as a subdocument
comments: [userCommentSchema]
}, { timestamps: true });

const Art = mongoose.model('Art', artSchema);

module.exports = Art;

Home.jsx
import React, { useState, useEffect } from 'react';
import { useNavigate } from 'react-router-dom';
import { useAuth } from '../context/AuthContext';
import ArtCard from '../components/ArtCard'; // Use ArtCard for individual artwork
import './Home.css';

const sampleArts = [
{
_id: '1',
title: 'Mystic Forest',
description: 'A magical depiction of an enchanted forest in acrylic.',
author: 'Anaya Roy',
price: 1200,
image: '/assets/sample1.jpg',

36
likes: 56,
},
{
_id: '2',
title: 'Urban Chaos',
description: 'Street art-inspired expression of city life.',
author: 'Ritvik Menon',
price: 850,
image: '/assets/sample2.jpg',
likes: 34,
},
{
_id: '3',
title: 'Serene Lake',
description: 'Tranquil vibes with a watercolor lake view.',
author: 'Tanvi Sharma',
price: 950,
image: '/assets/sample3.jpg',
likes: 40,
},
{
_id: '4',
title: 'Bold Portrait',
description: 'A colorful character study using pastels.',
author: 'Aarav Sinha',
price: 1600,
image: '/assets/sample4.jpg',
likes: 71,
},
{
_id: '5',
title: 'Dreamscape',
description: 'Abstract dream world with mixed media.',
author: 'Sneha Kapoor',
price: 1100,
image: '/assets/sample5.jpg',
likes: 62,
},
{
_id: '6',
title: 'Sunset Boulevard',
description: 'Golden hour over a lazy boulevard in oils.',
author: 'Ishaan Verma',
price: 1350,
image: '/assets/sample6.jpg',
likes: 48,

37
}
];

const Home = () => {


const [arts, setArts] = useState([]);
const { isAuthenticated, currentUser } = useAuth();
const navigate = useNavigate();

useEffect(() => {
// Simulating fetch with sample data
setArts(sampleArts);
}, []);

return (
<div className="home-container">
<h1 className="home-title">Welcome to ArtCraft</h1>

{isAuthenticated ? (
// Check if currentUser is not null before accessing currentUser.name
<h2 className="welcome-message">
Welcome, {currentUser ? currentUser.name : "Guest"}!
</h2>
):(
<p className="home-description">
Discover amazing original artworks from talented artists. Sign in to explore more and showcase
your own creations.
</p>
)}

<div className="artwork-grid">
{arts.map((art) => (
<ArtCard
key={art._id}
artwork={art}
currentUser={currentUser}
/>
))}
</div>

{!isAuthenticated && (
<button className="sign-in-button" onClick={() => navigate('/login')}>
Sign In to View More Artworks
</button>

export default Home;

38
JWT-Based Authentication with Email OTP Verification:
 Two-step registration:
 Email/Password
 OTP Verification (JWT-signed)
 Tokens handled via localStorage + protected routes via isAuth.
 Enhances security compared to basic auth flows.
sendMail.js:
import { createTransport } from
"nodemailer"; const sendMail = async
(email, subject, data) => { const transport
= createTransport({
host:
"smtp.gmail.co
m", port: 465,
auth: {
user:
process.env.Gmail,
pass:
process.env.Passwor
d,

},});
const html = `<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>OTP Verification</title>
<style>
body {
font-family: Arial, sans-serif;

39
margin: 0;
padding: 0; display: flex;
justify-
content:
center; align-
items: center;
height:
100vh;}
.container {
background-
color: #fff;
padding: 20px;
border-radius: 8px;
box-shadow: 0 2px 4px rgba(0, 0,
0, 0.1); text-align: center;}
h1 {
col
or:
red;}
p{
margin-
bottom: 20px;
color: #666; }
.otp {
font-size: 36px;
color: #7b68ee; /*
Purple text */ margin-
bottom: 30px; }
</style>
</head><body>
<div class="container">
<h1>OTP Verification</h1>

40
<p>Hello ${data.name} your (One-Time Password) for your account verification is.</p>
<p class="otp">${data.otp}</p>
</div></body></
html>`; await
transport.sendMail(
{ from:
process.env.Gmail,
to: email,
subject, html, });};
export default sendMail;
export const sendForgotMail = async (subject, data)
=> { const transport = createTransport({
host:
"smtp.gmail.co
m", port: 465,
auth: {
user:
process.env.Gmail,

41
<div class="container">
<h1>OTP Verification</h1>
<p>Hello ${data.name} your (One-Time Password) for your account verification is.</p>
<p class="otp">${data.otp}</p>
</div></body></html>`;
await transport.sendMail({
from: process.env.Gmail,
to: email,
subject,
html, });};
export default sendMail;
export const sendForgotMail = async (subject, data) =>
{ const transport = createTransport({
host: "smtp.gmail.com",
port: 465,
auth: {
user: process.env.Gmail,
pass: process.env.Password,
}, });
const html = `<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Reset Your Password</title>
<style>
body {
font-family: Arial, sans-serif;
background-color: #f3f3f3;
margin: 0;
padding: 0;}
.container {
background-color: #ffffff;

42
padding: 20px;
margin: 20px auto;
border-radius: 8px;
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
max-width: 600px;}
h1 {
color: #5a2d82; }
p{
color: #666666; }
.button {
display: inline-
block; padding: 15px
25px; margin: 20px
0;
background-color: #5a2d82;
color: white;
text-decoration: none;
border-radius: 4px;
font-size: 16px; }
.footer {
margin-top: 20px;
color: #999999;
text-align: center; }
.footer a {
color: #5a2d82;
text-decoration: none; }
</style></head><body>
<div class="container">
<h1>Reset Your Password</h1>
<p>Hello,</p>
<p>You have requested to reset your password. Please click the button below to reset your
password.</p>
<a href="${process.env.frontendurl}/reset-password/${data.token}" class="button">Reset

43
Password</a>

44
<p>If you did not request this, please ignore this email.</p>
<div class="footer">
<p>Thank you,<br>Your Website Team</p>
<p><a href="https://yourwebsite.com">yourwebsite.com</a></p>
</div>
</div>
</body>
</html>`;
await transport.sendMail({
from: process.env.Gmail,
to: data.email,
subject, html,
});};

7. OTP-Based Account Activation + Password Reset


 Sends OTP via Gmail SMTP.
 Secure activationToken and forgotToken with expiry.
 A strong, production-level user verification pipeline.
Verify.jsx:
import React, { useState } from "react";
import "./auth.css";
import { Link, useNavigate } from "react-router-dom";
import { UserData } from "../../context/UserContext";
import ReCAPTCHA from "react-google-recaptcha";
const Verify = () => {
const [otp, setOtp] = useState("");
const { btnLoading, verifyOtp } =
UserData(); const [show, setShow] =
useState(false); const navigate =
useNavigate();
function onChange(value)
{ console.log("Captcha value:", value);

45
setShow(true); }

46
const submitHandler = async (e) => {
e.preventDefault();
await verifyOtp(Number(otp), navigate);};
return (
<div className="auth-page">
<div className="auth-form">
<h2>Verify Account</h2>
<form onSubmit={submitHandler}>
<label htmlFor="otp">Otp</label>
<input
type="number"
value={otp}
onChange={(e) => setOtp(e.target.value)}
required />
<ReCAPTCHA
sitekey="
6LeIxAcTAAAAAJcZVRqyHh71UMIEGNQ_MXjiZKhI"
onChange={onChange} /> ,
{show && (
<button disabled={btnLoading} type="submit" className="common-btn">
{btnLoading ? "Please Wait..." : "Verify"}
</button> )}
</form> <p>
Go to <Link to="/login">Login</Link> page
</p>
</div>
</div>);};
export default Verify;

ResetPassword.jsx:
import React, { useState } from "react";
import "./auth.css";
import { useParams } from "react-router-dom";

47
import { useNavigate } from "react-router-dom";

48
import toast from "react-hot-toast";
import axios from "axios";
import { server } from "../../main";
const ResetPassword = () => {
const [password, setPassword] = useState("");
const [btnLoading, setBtnLoading] = useState(false);
const navigate = useNavigate();
const params = useParams();
const handleSubmit = async (e) => {
e.preventDefault();
setBtnLoading(true);
try {
const { data } = await axios.post(
${server}/api/user/reset?token=${params.token},{password,} );
toast.success(data.message);
navigate("/login");
setBtnLoading(false);
} catch (error) {
toast.error(error.response.data.message);
setBtnLoading(false);
}};
return (
<div className="auth-page">
<div className="auth-form">
<h2>Reset Password</h2>
<form onSubmit={handleSubmit}>
<label htmlFor="text">Enter Password</label>
<input
type="password"
value={password}
onChange={(e) => setPassword(e.target.value)}
required />
<button disabled={btnLoading} className="common-btn">

49
{btnLoading ? "Please Wait..." : "Reset Password"}
</button>
</form>
</div>
</div> );};
export default ResetPassword;

ForgetPassword.jsx:
import React, { useState } from "react";
import "./auth.css";
import { useNavigate } from "react-router-dom";
import toast from "react-hot-toast";
import axios from "axios";
import { server } from "../../main";
const ForgotPassword = () => {
const [email, setEmail] = useState("");
const [btnLoading, setBtnLoading] = useState(false);
const navigate = useNavigate();
const handleSubmit = async (e) => {
e.preventDefault();
setBtnLoading(true);
try {
const { data } = await axios.post(${server}/api/user/forgot, { email });
toast.success(data.message);
navigate("/login");
setBtnLoading(false);
} catch (error) {
toast.error(error.response.data.message);
setBtnLoading(false);} };
return (
<div className="auth-page">
<div className="auth-form">
<h2>Forgot Password</h2>

50
<form onSubmit={handleSubmit}>
<label htmlFor="text">Enter Email</label>
<input
type="email"
value={email}
onChange={(e) =>
setEmail(e.target.value)} required />
<button disabled={btnLoading} className="common-btn">
{btnLoading ? "Please Wait..." : "Forgot Password"}
</button>
</form> </div> </div>
);};export default ForgotPassword;

Register.jsx:
import React, { useState } from "react";
import "./auth.css";
import { Link, useNavigate } from "react-router-dom";
import { UserData } from "../../context/UserContext";
const Register = () => {
const navigate = useNavigate();
const { btnLoading, registerUser } = UserData();
const [email, setEmail] = useState("");
const [password, setPassword] = useState("");
const [name, setName] = useState("");
const submitHandler = async (e) => {
e.preventDefault();
await registerUser(name, email, password, navigate); };
return (
<div className="auth-page">
<div className="auth-form">
<h2>Register</h2>
<form onSubmit={submitHandler}>
<label htmlFor="name">Name</label>

51
<input
type="text"
value={name}
onChange={(e) => setName(e.target.value)}
required />
<label htmlFor="email">Email</label>
<input
type="email"
value={email}
onChange={(e) =>
setEmail(e.target.value)} required />
<label htmlFor="password">Password</label>
<input
type="password"
value={password}
onChange={(e) => setPassword(e.target.value)}
required />
<button type="submit" disabled={btnLoading} className="common-btn">
{btnLoading ? "Please Wait..." : "Register"}
</button>
</form> <p>
have an account? <Link to="/login">Login</Link>
</p> </div> </div>);};
export default Register;

Login.jsx:
import React, { useState } from "react";
import "./auth.css";
import { Link, useNavigate } from "react-router-dom";
import { UserData } from "../../context/UserContext";
import { CourseData } from "../../context/CourseContext";
const Login = () => {
const navigate = useNavigate();

52
const { btnLoading, loginUser } = UserData();
const [email, setEmail] = useState("");
const [password, setPassword] = useState("");
const { fetchMyCourse } = CourseData();
const submitHandler = async (e) => {
e.preventDefault();
await loginUser(email, password, navigate, fetchMyCourse); };
return (
<div className="auth-page">
<div className="auth-form">
<h2>Login</h2>
<form onSubmit={submitHandler}>
<label htmlFor="email">Email</label>
<input
type="email"
value={email}
onChange={(e) =>
setEmail(e.target.value)} required />
<label htmlFor="password">Password</label>
<input
type="password"
value={password}
onChange={(e) => setPassword(e.target.value)}
required />
<button disabled={btnLoading} type="submit" className="common-btn">
{btnLoading ? "Please Wait..." : "Login"}
</button> </form> <p>
Don't have an account? <Link to="/register">Register</Link>
</p> <p>
<Link to="/forgot">Forgot password?</Link>
</p> </div> </div>);};
export default Login;

53
CHAPTER 6: RESULTS

Following the implementation and testing phases, ElevateU successfully met the major
objectives outlined at the beginning of the project:
 Secure Authentication: Registration and login systems worked flawlessly with role-
based access implemented for users and admins.

54
55
56
 Responsive Design: The platform performed well on desktops, tablets, and
smartphones, providing a seamless user experience across devices.

57
 User Dashboard: Users could easily register for courses, view enrolled content, and
update their profiles.

 Admin Dashboard: Admins could effectively manage users, courses, and monitor
engagement statistics.

58
 Course Management: Uploading and accessing documents and videos was fast and
secure.

59
CONCLUSION
The development of ElevateU represents a significant step toward modernizing educational delivery
through the use of cutting-edge web technologies. In today's fast-paced world, where accessibility,
flexibility, and personalization have become essential components of learning, ElevateU successfully
addresses these critical needs by offering a secure, user-friendly, and highly responsive e-learning
platform.
By leveraging the capabilities of React.js for frontend development and Postman for backend API
testing and validation, the project achieved a seamless integration between user interaction and
system functionality. Secure user authentication, efficient course registration, dynamic content
delivery, user profile management, and robust administrative functionalities are key achievements of
the system. These features collectively provide a complete learning ecosystem that caters not only to
learners but also empowers administrators to manage the platform with ease.
Throughout the course of this project, multiple modern software engineering principles were applied,
including modular design, component-based architecture, API-driven development, and responsive
UI/UX design strategies. Additionally, emphasis on testing, validation, and error handling ensures
that the platform is reliable, scalable, and ready for real-world deployment.
An important highlight of ElevateU is its scalability and adaptability. The platform is built with a
forward-looking approach, ensuring that it can be expanded with additional functionalities like AI-
driven learning recommendations, real-time collaboration features, certification programs, and even
mobile application versions. The structured architecture allows easy integration of emerging
technologies without requiring extensive rework.
Moreover, the project emphasized user-centric design, where usability and simplicity were
prioritized. This ensures that learners of all backgrounds — including those with minimal technical
skills — can comfortably navigate and engage with the platform. The dual-role system (user and
admin) with clear distinctions in access and functionality further enhances the platform's security and
management effectiveness.
In conclusion, ElevateU is not just an academic project but a viable product prototype that reflects the
trends, technologies, and methodologies defining the future of online education. It embodies the
transition from traditional education models to innovative, technology-driven learning experiences
that are accessible anytime, anywhere. The successful completion of this project lays the groundwork
for more sophisticated enhancements, paving the way for ElevateU to grow into a fully-fledged,
competitive e-learning platform capable of making a lasting impact on the educational sector.

60
FUTURE WORK

Though ElevateU has successfully achieved its initial goals, several enhancements and expansions are
envisioned to increase its impact and usability:

 Mobile Application Development:


o Create native Android and iOS apps for greater accessibility and mobile optimization.
 Real-time Communication Features:
o Add messaging and discussion forums for peer-to-peer interaction.
 Live Classes and Webinars:
o Integration with platforms like Zoom or WebRTC to offer live classes within the
platform.
 AI-Based Personalization:
o Use artificial intelligence to recommend courses based on user preferences, skill gaps,
and past performance.
 Certification System:
o Auto-generate certificates for course completion and integrate with professional
platforms like LinkedIn.
 Analytics Dashboard:
o Provide detailed analytics for users (learning progress) and admins (course
engagement metrics).
 Multi-language Support:
o Expand to different languages to reach a broader, global audience.
 Blockchain for Certification Security:
o Explore using blockchain technology to create tamper-proof certificates

61
REFERENCES

[1] React.js Official Documentation - https://react.dev/


[2] Postman API Development and Testing Tool - https://www.postman.com/
[3] JWT Authentication Standards - https://jwt.io/
[4] GitHub Documentation for Project Versioning - https://docs.github.com/
[5] Coursera Online Learning Platform Overview - https://www.coursera.org/
[6] Udemy Course Marketplace Platform - https://www.udemy.com/
[7] edX Online Courses Platform - https://www.edx.org/
[8] Axios Library for HTTP Requests - https://axios-http.com/
[9] Material UI Official Documentation for React Components - https://mui.com/
[10] Agile Software Development Principles - Manifesto for Agile Development -
https://agilemanifesto.org/

62

You might also like