Project Document
Project Document
Submitted for partial fulfillment of the requirement of the Main Project (4MCA1) for
Submitted by
Rakesh S (P18IW22S126017)
Name of Guide
Ms. Benita Jaison
CERTIFICATE
This is to certify that the report entitled “Movie Streaming Application” embodies the
original work by Rakesh S (P18IW22S126017), the partial fulfilment of the requirements
for Mini Project for MCA, 3rd Semester course during the academic semester from January
2024 to May 2024 as prescribed by Bengaluru City University.
Place: Banglore
Date:
2
St. Francis College
Movie Streaming Application
CERTIFICATE
This is to certify that the report entitled “Movie Streaming Application” embodies the
original work by Rakesh R (P18IW22S126017), Rakesh S (P18IW22S126017), the partial
fulfilment of the requirements for Mini Project for MCA, 3rd Semester course during the
academic semester from January 2024 to May 2024 as prescribed by Bengaluru City
University.
Place: Bangalore
Date:
3
St. Francis College
Movie Streaming Application
1. Acknowledgement
We take this opportunity to express my profound gratitude and deep regards to thank
Rev.Bro.Xavier Alexander ,Chairman of St .Francis college and Bro. Peter
D,Director of St .Francis college for providing good infrastructure and Hi-Tech lab
facilities to develop and improve student’s like skills.
I sincerely express my gratitude to the college Principal Dr. Subba Rao for
supporting the students in all their technical activities and giving guidance to them. I
would like to thank , Dr. Nazura Javed Kutty , HOD, Department of MCA, St.
Francis college for granting permission to undertake this project. I would like to
express my gratitude to the project guide Ms. Benita Jaison for giving all the
instructions and guidelines at every stage of the Project work.
4
St. Francis College
Movie Streaming Application
2. ABSTRACT
The project aims to develop a compressive crypto trading platform utilizing a java full-stack
approach. The platform will integrate various advanced features, including an AI chat boot
for handling crypto-related queries, a seamless buy and sell interface for multiple crypto
currencies, and robust portfolio management tools. Additionally, the project will enhance
wallet functionality with secure wallet-to-wallet transfer, withdrawals to bank accounts, and
balanced top-ups. The platform will also provide detailed transaction history and powerful
search capabilities for crypto currencies. Ensuring top-notch security, the platform will
incorporate robust authentication mechanisms, including two-factor authentication. The
platform will leverage modern technologies such as Spring Boot, React, MySQL, and various
APIs to deliver a high-performance, secure and scalable solution.
Security is paramount in the design of this platform. It will incorporate strong authentication
mechanisms, including two-factor authentication and secure login and registration processes,
to protect user accounts. The technology stack for this platform includes Spring Boot for the
backend, MySQL for the database, and React with Tailwind CSS for the frontend, ensuring a
high-performance, secure, and scalable solution.
The integration of payment gateways such as Razor pay and Stripe will facilitate smooth
financial transactions, making it easier for users to manage their funds. By combining these
features, the platform aims to provide a comprehensive solution that addresses the needs of
modern crypto traders and investors, enhancing their ability to trade efficiently and securely
in the evolving crypto-currency market.
5
St. Francis College
Movie Streaming Application
INTRODUCTION
This project is a robust cryptocurrency platform designed to offer users an efficient and
seamless experience for managing and trading digital assets. The platform incorporates an AI
chatbot, utilizing the Gemini and CoinGecko APIs to provide real-time responses to
cryptocurrency-related queries such as market values and trends, helping users make
informed decisions. Additionally, it features an intuitive buy and sell interface that supports a
wide range of cryptocurrencies, enabling smooth transactions.
A major focus of the platform is portfolio management, allowing users to monitor their
investments, track performance, and make data-driven decisions about their holdings. The
wallet functionality is designed to be comprehensive, offering secure wallet-to-wallet
transfers, the ability to add funds, and options for withdrawing to bank accounts.
The platform also provides a detailed transaction history, allowing users to view and track
both withdrawal and wallet activities. A powerful search feature helps users find essential
information on any cryptocurrency, streamlining the trading process. Security is paramount,
with features such as secure login and registration, two-factor authentication (2FA), and an
easy-to-use password recovery process, ensuring that user accounts are well protected.
Built using cutting-edge technology, the backend is powered by Spring Boot, with MySQL
DB for data storage, Spring Security for robust protection, and Java Mail Sender for
communication services. On the frontend, React, Tailwind CSS, Redux, Axios, React-Router-
Dom, and Shadcn UI work together to create a responsive, dynamic, and user-friendly
interface. The integration of payment gateways like Razorpay and Stripe ensures that all
transactions are secure and reliable. Overall, this platform combines performance, security,
and functionality, offering a complete solution for cryptocurrency traders and investors.
6
St. Francis College
Movie Streaming Application
3. Objectives
Utilize Gemini and CoinGecko APIs to deliver real-time cryptocurrency price updates
and market trends.
Enable users to search for and retrieve essential data about various cryptocurrencies to
make informed trading decisions.
Integrate an AI chat bot capable of handling crypto-related queries and providing real-
time information on market data.
Improve customer support and user engagement by offering quick, accurate
responses.
Implement robust security measures like two-factor authentication and secure login
processes to protect user accounts.
Ensure safe user data handling and secure transactions using Spring Security and
encrypted communications.
Provide tools for users to monitor their crypto portfolios, track performance, and
make informed investment decisions.
Allow users to view their portfolio's value over time and receive notifications about
significant changes in value.
7
St. Francis College
Movie Streaming Application
Use Spring Boot and MySQL DB to build a scalable backend capable of handling a
growing number of users and transactions.
Develop a responsive and visually appealing frontend using React, Tailwind CSS, and
Redux for optimal user interaction.
These objectives aim to create a secure, user-friendly, and efficient platform that enhances
user experience while fostering continuous growth in the cryptocurrency space.
8
St. Francis College
Movie Streaming Application
Real-time Crypto Data: Using Gemini and CoinGecko APIs ensures users
have up-to-date market information for informed trading decisions.
Enhanced User Engagement: Provides instant responses to queries,
improving user experience and reducing reliance on customer support.
3. Portfolio Management:
5. Transaction History:
Detailed Logs: Users can access past transaction data, which is critical for
personal audits and tax reporting.
Transparency: Improves trust by offering a clear record of all financial activity.
9
St. Francis College
Movie Streaming Application
Scalability: Spring Boot, MySQL, and React ensure the system can handle
increasing traffic and data loads efficiently.
Security: Spring Security and Java Mail Sender provide enhanced user data
protection and secure communications.
Modern Frontend: Technologies like Tailwind CSS and Redux ensure
responsive, efficient, and visually appealing interfaces, enhancing the overall user
experience.
8. Payment Gateways:
Overall, the platform is designed for high performance, security, user engagement, and
scalability, offering a competitive edge in the cryptocurrency market.
10
St. Francis College
Movie Streaming Application
Module Design
1. User Authentication Module
AI Engine:
o Handles natural language processing and crypto-related queries.
o Technologies: OpenAI API (or similar), Gemini API, CoinGecko API.
Response Handler:
o Communicates with third-party APIs to fetch real-time data.
o Technologies: Gemini API, CoinGecko API, Axios (for frontend requests).
11
St. Francis College
Movie Streaming Application
Portfolio Overview:
o Displays user investments, portfolio value, and performance metrics.
o Technologies: React, Redux, Tailwind CSS, Axios (for data fetching), Spring Boot.
Performance Tracker:
o Tracks and calculates the performance of user portfolios over time.
o Technologies: Spring Boot, MySQL DB.
Notification System:
o Alerts users on significant changes in portfolio value.
o Technologies: Spring Boot, Java Mail Sender, Push Notification APIs.
Withdrawal History:
o Lists all past withdrawals made by the user, with dates and amounts.
o Technologies: Spring Boot, MySQL, React.
Wallet Transaction History:
o Detailed view of all wallet-related transactions, including transfers, deposits, and
trades.
o Technologies: Spring Boot, MySQL, React.
Search Coin Functionality:
o Allows users to search and retrieve detailed information on any cryptocurrency.
o Technologies: React, Axios, CoinGecko API.
Razorpay Integration:
o Manages payment processing for INR (or other local currencies).
o Technologies: Razorpay API, Spring Boot, MySQL DB.
Stripe Integration:
o Handles international payment processing.
o Technologies: Stripe API, Spring Boot, MySQL DB.
Transaction Handler:
o Handles payments, refunds, and fee management.
o Technologies: Razorpay API, Stripe API, Spring Boot.
8. Security Module
12
St. Francis College
Movie Streaming Application
User Management:
o Allows admins to manage users, verify accounts, and resolve issues.
o Technologies: React, Spring Boot, MySQL.
Transaction Monitoring:
o Provides an overview of all transactions, with the ability to flag suspicious activity.
o Technologies: React, Spring Boot, MySQL.
System Health Monitoring:
o Displays metrics related to system performance, API uptime, and transaction volume.
o Technologies: Spring Boot, Prometheus, Grafana (for monitoring and alerts).
Email Notifications:
o Sends users confirmation emails for transactions, withdrawals, and portfolio updates.
o Technologies: Java Mail Sender, Spring Boot.
Push Notifications:
o Sends real-time notifications to users regarding market changes, successful
transactions, etc.
o Technologies: Firebase Cloud Messaging (FCM) or similar service, Spring Boot.
This modular design separates concerns and enhances scalability, security, and maintainability,
ensuring the platform can grow with user demand while maintaining high performance and security
standards.
13
St. Francis College
Movie Streaming Application
The Java Full Stack with a front-end using React.js and a backend built with Spring Boot
and MySQL is a powerful web development stack. Each component in this stack has its own
system requirements. Here are the typical system requirements for each part of this stack:
MySQL Client-Server:
Operating Systems: MySQL can run on Windows, macOS, Linux, and other Unix-
based systems.
Spring Boot:
For optimal performance, ensure adequate CPU and memory for high-traffic
applications.
Spring Security:
Spring Security provides security features for Java applications.As it’s part of the
Spring framework, the requirements are similar to Spring Boot.
No additional system requirements beyond the web application server (Tomcat, Jetty,
etc.).
System requirements are tied to the Java runtime environment and Spring Boot, as it
is an embedded feature.
14
St. Francis College
Movie Streaming Application
Network: Requires an email server (SMTP) for sending emails; you need a stable
internet connection to communicate with the mail server.
React:
The system requirements depend on the browsers and devices you intend to support.
Node.js Required: React apps are typically built using Node.js, which requires:
Tailwind CSS:
It’s processed via Node.js in development mode, so system requirements are similar
to React/Node.js environments.
Memory and Disk Space: Minimal; additional space may be required for Tailwind’s
build tools.
Shadcn UI:
System requirements align with the React setup since it is tightly integrated.
15
St. Francis College
Movie Streaming Application
User
User Registration Form: This form gathers essential user information, including full
name, email address, and password, while implementing validation checks to ensure data
integrity and security. Users must verify their email to activate their accounts, enhancing
security and preventing unauthorized registrations.
User Login Page: The login page allows users to securely access their accounts by
entering their registered email and password. It features a "Forgot Password" link for account
recovery and incorporates two-factor authentication (2FA) to add an extra layer of security,
ensuring that only authorized users can access sensitive information.
Home Page: Serving as the platform's main dashboard, the home page provides a
comprehensive overview of the user's account, showcasing current cryptocurrency market
trends, portfolio performance metrics, and quick links to essential functionalities such as
trading and wallet management. It also highlights alerts or notifications related to user
activity.
Portfolio Details: This section presents an in-depth view of the user's cryptocurrency
holdings, including detailed information about each asset such as current market value,
quantity owned, and overall profit or loss. Users can track their investments' performance
over time and view historical data for informed decision-making.
Watch List: The watch list feature allows users to curate a selection of cryptocurrencies
they wish to monitor closely. It displays real-time price changes, percentage fluctuations, and
market trends for each asset, enabling users to make timely investment decisions based on
market movements.
Buy or Sell: The trading interface allows users to execute cryptocurrency trades with ease.
Users can select the asset they wish to buy or sell, specify the quantity, and view the current
16
St. Francis College
Movie Streaming Application
market price. The platform provides real-time updates and trade confirmations to ensure a
smooth transaction process.
Wallet Details: This section offers a complete overview of the user's digital wallet,
including current balances for various cryptocurrencies, transaction history, and options to
add funds or withdraw to a linked bank account. It ensures users can manage their assets
efficiently and securely.
Payment Details: Users can manage their payment methods within this feature, including
linking bank accounts, credit cards, and other payment options. The section displays
transaction records related to deposits, withdrawals, and trading activities, providing users
with a clear financial overview.
Profile Details: This area allows users to manage their personal information, such as
contact details and account settings. Users can update their profiles, change passwords, and
configure security settings to enhance account safety and personalization.
AI Chat Bot: The AI chat bot serves as a virtual assistant, providing users with real-time
support for cryptocurrency-related inquiries, including current market prices, trading tips, and
platform navigation. It uses natural language processing to understand user questions and
deliver accurate, informative responses, enhancing the overall user experience.
Here’s a list of test cases formatted similarly for the cryptocurrency platform features:
Description:
Preparation:
Execution:
Check:
17
St. Francis College
Movie Streaming Application
Description:
Preparation:
Execution:
Check:
Description:
Preparation:
Execution:
Check:
18
St. Francis College
Movie Streaming Application
Description:
Preparation:
Execution:
Check:
Description:
Users must be able to add or remove cryptocurrencies from the watch list.
Real-time price updates must be reflected in the watch list.
Preparation:
Execution:
Check:
Description:
19
St. Francis College
Movie Streaming Application
Preparation:
Execution:
Check:
Description:
Preparation:
Execution:
Check:
Description:
The wallet details page must show current balances and transaction history.
Users should be able to add funds or withdraw easily.
Preparation:
Execution:
Check:
Description:
Preparation:
Execution:
Check:
Description:
The AI chat bot must respond to user queries regarding market data and platform
navigation.
Responses should be accurate and relevant.
Preparation:
Execution:
Check:
21
St. Francis College
Movie Streaming Application
ChatGPT said:
ChatGPT
Here’s a module description with brief algorithms for the cryptocurrency platform:
Description: This module handles user registration, login, and security through two-factor
authentication (2FA). It ensures that only authorized users can access the platform and
perform transactions.
Algorithm:
1. Registration Algorithm:
o Input: User details (name, email, password)
o Validate input for completeness and format.
o Hash the password for security.
o Store user details in the database.
o Send a verification email to the user.
o Wait for email verification confirmation.
o Activate the user account.
2. Login Algorithm:
o Input: Email and password.
o Retrieve user data from the database using the email.
o Compare the hashed password with the stored hash.
o If valid, generate and send a 2FA code to the registered device.
o Input the received 2FA code and verify it.
o If successful, grant access; otherwise, show an error message.
Description: This module allows users to view and manage their cryptocurrency holdings,
providing insights into their investments' performance.
Algorithm:
22
St. Francis College
Movie Streaming Application
Description: This module facilitates buying and selling cryptocurrencies, ensuring secure
and efficient transaction processing.
Algorithm:
Description: This module manages users' digital wallets, allowing them to view balances,
transfer funds, and withdraw to bank accounts.
Algorithm:
3. Withdrawal Algorithm:
o Input: Wallet ID, amount, bank account details.
23
St. Francis College
Movie Streaming Application
Description: This module manages user notifications related to account activities, trades, and
market alerts.
Algorithm:
Description: This module provides users with an AI-powered chat interface for real-time
assistance regarding platform features and cryptocurrency data.
Algorithm:
This structure provides a clear overview of each module's purpose and operational logic,
facilitating a comprehensive understanding of the system's functionality.
4o mini
You said:
do one thing make module and algorithams seperate
24
St. Francis College
Movie Streaming Application
ChatGPT said:
ChatGPT
Here’s the revised format with modules and algorithms presented separately for clarity:
Modules
Description:
Handles user registration, login, and security through two-factor authentication (2FA),
ensuring that only authorized users can access the platform.
Description:
Allows users to view and manage their cryptocurrency holdings, providing insights into their
investments' performance.
Description:
Facilitates buying and selling cryptocurrencies, ensuring secure and efficient transaction
processing.
Description:
Manages users' digital wallets, allowing them to view balances, transfer funds, and withdraw
to bank accounts.
Description:
Manages user notifications related to account activities, trades, and market alerts.
25
St. Francis College
Movie Streaming Application
Description:
Provides users with an AI-powered chat interface for real-time assistance regarding platform
features and cryptocurrency data.
Algorithms
1. Registration Algorithm:
o Input: User details (name, email, password)
o Validate input for completeness and format.
o Hash the password for security.
o Store user details in the database.
o Send a verification email to the user.
o Wait for email verification confirmation.
o Activate the user account.
2. Login Algorithm:
o Input: Email and password.
o Retrieve user data from the database using the email.
o Compare the hashed password with the stored hash.
o If valid, generate and send a 2FA code to the registered device.
o Input the received 2FA code and verify it.
o If successful, grant access; otherwise, show an error message.
26
St. Francis College
Movie Streaming Application
o Validate that the user has sufficient funds or assets for the transaction.
o Retrieve current market price for the asset.
o If buying, deduct the total cost from the user's wallet.
o If selling, add the proceeds to the user's wallet.
o Update the portfolio and transaction history accordingly.
3. Withdrawal Algorithm:
o Input: Wallet ID, amount, bank account details.
o Validate the withdrawal amount against the wallet balance.
o Process the transfer to the specified bank account.
o Update the wallet balance and log the transaction.
28
St. Francis College
Movie Streaming Application
o atl_date
o roi
o last_updated
3. Assets Table
o id (Primary Key)
o quantity
o buy_price
o coin_id (Foreign Key referencing Coins)
o user_id (Foreign Key referencing Users)
4. Withdrawals Table
o id (Primary Key)
o status
o amount
o user_id (Foreign Key referencing Users)
o date
5. Watchlists Table
o id (Primary Key)
o user_id (Foreign Key referencing Users)
6. Watchlist_Coins Table (Join Table for many-to-many relationship)
o watchlist_id (Foreign Key referencing Watchlists)
o coin_id (Foreign Key referencing Coins)
7. WalletTransactions Table
o id (Primary Key)
o wallet_id (Foreign Key referencing Wallets)
o type
o date
o transfer_id
o purpose
o amount
8. Wallets Table
o id (Primary Key)
o user_id (Foreign Key referencing Users)
o balance
9. VerificationCodes Table
o id (Primary Key)
o otp
o user_id (Foreign Key referencing Users)
o email
o mobile
o verification_type
10. TradingHistories Table
o id (Primary Key)
o selling_price
o buying_price
o coin_id (Foreign Key referencing Coins)
o user_id (Foreign Key referencing Users)
11. PaymentOrders Table
o id (Primary Key)
o amount
o status
o payment_method
o user_id (Foreign Key referencing Users)
12. PaymentDetails Table
o id (Primary Key)
o account_number
29
St. Francis College
Movie Streaming Application
o account_holder_name
o ifsc
o bank_name
o user_id (Foreign Key referencing Users)
13. Orders Table
o id (Primary Key)
o user_id (Foreign Key referencing Users)
o order_type
o price
o timestamp
o status
o order_item_id (Foreign Key referencing OrderItems)
14. OrderItems Table
o id (Primary Key)
o quantity
o coin_id (Foreign Key referencing Coins)
o buy_price
o sell_price
o order_id (Foreign Key referencing Orders)
15. Notifications Table
o id (Primary Key)
o from_user_id (Foreign Key referencing Users)
o to_user_id (Foreign Key referencing Users)
o amount
o message
16. MarketChartData Table
o id (Primary Key)
o timestamp
o price
17. ForgotPasswordTokens Table
o id (Primary Key)
o user_id (Foreign Key referencing Users)
o otp
o verification_type
o send_to
30
St. Francis College