A
PROJECT BASED LEARNING REPORT
On
Cloud Based Notes Storage App
Submitted in partial fulfillment of the Requirements for the Award of the Degree of
BACHELOR OF TECHNOLOGY
IN
COMPUTER SCIENCE AND ENGINEERING (AI&ML)
BY
M. NIKITHA (22N81A66D8)
K. VIBHAV (22N81A66J6)
M. NARESH (22N81A66F8)
N. VIJAY KUMAR (22N81A66H5)
Under the Guidance of
MD . Faisal
Asst. Professor
Department of CSE (AI&ML)
DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING (AI&ML)
SPHOORTHY ENGINEERING COLLEGE
{NAAC Accredited, Recognised by UGC, u/s 2(f) & 12(B)}
(Permanently Affiliated to JNTUH, Approved by AICTE, New Delhi, ISO 9001:2015 Certified)}
Nadergul (Vill.), Near L.B. Nagar, Hyderabad, Telangana – 501510.
2022-2026
1
SPHOORTHY ENGINEERING COLLEGE
DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING (AI&ML)
CERTIFICATE
This is to certify that this Project Based Learning Report entitled Cloud Based Notes
Storage App is a bonafide work carried out by M. NIKITHA (22N81A66D8) , K.
VIBHAV (22N81A66J6) , M. NARESH (22N81A66F8) and N. VIJAY
KUMAR (22N81A66H5) in partial fulfilment of the requirements for the award of
degree of Bachelor of Technology in Computer Science and Engineering (AI&ML) from
Sphoorthy Engineering College, affiliated to Jawaharlal Nehru Technological University
Hyderabad, during the Academic Year 2025-26 under our guidance and supervision.
The results embodied in this report have not been submitted to any other university or
institute for the award of any degree or diploma.
Internal Guide Head of the Department
[Link]
Assistant Professor
Department of CSE (AI&ML)
Sphoorthy Engineering College.
2
ABSTRACT
The Cloud-Based Notes Storage App is designed to provide users with a secure, reliable, and
easily accessible platform for creating, storing, and managing digital notes. Traditional note-
keeping methods often lead to data loss, limited accessibility, and poor organization. This
application leverages cloud technologies to ensure that notes are synchronized across multiple
devices in real time, enabling seamless access anytime and anywhere.
The system integrates user authentication, encrypted cloud storage, and an intuitive user
interface to offer a smooth note-taking experience. Users can create, edit, categorize, and search
notes efficiently. The backend utilizes scalable cloud services to ensure high availability and
data safety, while the frontend provides a simple, user-friendly environment suitable for
students, professionals, and general users.
Overall, the project aims to deliver a dependable note-management solution that enhances
productivity, supports cross-platform accessibility, and ensures long-term data security.
M. NIKITHA (22N81A66D8)
K. VIBHAV (22N81A66J6)
M. NARESH (22N81A66F8)
N. VIJAY KUMAR (22N81A66H5)
3
INDEX
S. No. Section Title Page No.
1 Introduction 6
2 Problem Statement 7
3 Objectives 8
4 Methodology 9
5 System architecture 13
6 Implementation 15
7 Outputs/Results 18
8 Conclusion and Future Scope 20
9 References 22
4
LIST OF FIGURES
Figure
Figure Name Page No.
No.
5 System Architecture 12
5.1 ER Diagram 13
5.2 Use case diagram 13
5.3 Data Flow diagram 14
5.4 Sequence diagram 14
5
1. Introduction:
In today’s fast-paced digital environment, the way individuals capture, store,
and manage information has undergone significant transformation. Notes, ideas,
reminders, and important information are no longer confined to physical
notebooks or single-device storage. However, despite the availability of digital
tools, many existing systems still face challenges such as limited accessibility,
storage constraints, poor synchronization, and vulnerability to data loss. These
limitations highlight the need for a more reliable and universally accessible
notes management solution.
Cloud computing has emerged as a powerful technology that enables on-
demand access to shared resources—including data storage and computing
power—without requiring local infrastructure. By leveraging cloud services,
users can store and retrieve data remotely, ensuring high availability, scalability,
and security. With an increasing number of tasks becoming digital, cloud-based
applications play a crucial role in improving convenience and productivity.
The Cloud-Based Notes Storage App is designed to address these challenges
by offering an efficient, user-friendly, and secure platform for storing and
managing notes online. This application allows users to create, edit, categorize,
and update notes, while ensuring that all data is automatically synced across
multiple devices through cloud integration. Such real-time accessibility enables
users to continue their work from any location, fostering seamless workflow and
collaboration.
Furthermore, the system incorporates secure authentication protocols, encrypted
storage mechanisms, and an intuitive interface to ensure that users’ data remains
protected while maintaining ease of use. The app is suitable for students
tracking class notes, professionals managing tasks and ideas, and individuals
maintaining personal information.
As technology continues to advance, cloud-based applications like this one
demonstrate the potential for improving everyday activities. The development
of this notes storage app not only highlights the importance of cloud computing.
6
2. Problem Statement:
Traditional methods of storing notes—whether handwritten, saved locally on
devices, or managed through basic digital tools—often lead to issues such as
data loss, limited accessibility, poor organization, and insufficient security.
Users frequently struggle with retrieving notes across different devices,
managing multiple versions, and safeguarding their information from accidental
deletion or device failures.
Existing note-taking applications may also lack real-time synchronization,
scalable storage, or robust security features, resulting in reduced efficiency and
reliability.
There is a need for a centralized, cloud-based system that allows users to
securely create, store, organize, and access their notes from any device at any
time.
The system should ensure seamless synchronization, strong authentication,
encrypted data storage, and a user-friendly interface that enhances productivity
and overcomes the limitations of traditional and local note-storage methods.
7
3. Objectives:
1. To develop a cloud-based application that enables users to create, store,
edit, and manage notes securely from any device.
2. To ensure real-time synchronization of notes across multiple platforms
using cloud integration, allowing seamless accessibility.
3. To implement secure authentication mechanisms to protect user data and
prevent unauthorized access.
4. To provide encrypted and scalable cloud storage for safe, long-term data
preservation.
5. To offer an intuitive and user-friendly interface that enhances productivity
and simplifies note-taking activities for users of all backgrounds.
6. To support efficient note organization through features such as
categorization, search functionality, and easy retrieval.
7. To ensure high availability and reliability of stored notes by leveraging
robust cloud infrastructure.
8. To design the system with future extensibility, enabling additional features
such as reminders, multimedia notes, or collaborative editing.
8
4. Methodology:
The development of the Cloud-Based Notes Storage App follows a structured
and systematic methodology to ensure accuracy, efficiency, and reliability. The
methodology consists of several phases, each contributing to building a fully
functional and user-friendly cloud-based application.
1. Requirement Analysis
Identify the needs of users such as note creation, editing, secure storage,
and multi-device access.
Analyze limitations in existing note-taking solutions.
Define functional and non-functional requirements for the system.
Select suitable technologies (e.g., Firebase, AWS, Google Cloud, or
custom backend with cloud database).
2. System Design
Design the architecture of the application, including client-side interfaces,
backend workflows, and cloud integration.
Prepare UML diagrams (use case, class, sequence, activity diagrams) to
visualize system behavior.
Plan database schema for storing user accounts and notes securely.
Choose appropriate security mechanisms (password hashing, cloud
authentication, encryption).
3. UI/UX Design
Create wireframes for the user interface focusing on simplicity and ease
of use.
9
4. Backend Development
Develop APIs for user authentication, note creation, editing, deletion, and
retrieval.
Implement secure user login and registration using cloud identity
services.
Integrate encrypted cloud storage for storing note data.
Ensure scalability and performance optimization in backend processing.
5. Frontend Development
Implement the user interface based on finalized UI designs.
Connect the frontend with backend APIs for real-time note
synchronization.
Add features such as note editing, searching, listing, and categorizing.
Ensure smooth navigation and user experience.
6. Cloud Integration
Connect the application to cloud services like Firebase Firestore, AWS
S3, DynamoDB, or Google Cloud.
Configure real-time syncing so that updates reflect instantly across
devices.
Set up cloud storage rules and security policies to protect user data.
Enable auto-backup and high availability.
7. Testing
Perform unit testing on individual modules (login, note editor, etc.).
Conduct integration testing to ensure all components work together
properly.
10
Perform security testing to ensure protection against unauthorized access.
8. Deployment
Deploy the backend on a cloud server (e.g., AWS EC2, Firebase Hosting,
Netlify).
Publish the frontend/web app for user access.
Set up monitoring tools to check performance and server health.
9. Evaluation & Feedback
Gather feedback from test users.
Identify bugs, performance issues, or missing features.
Improve UI/UX based on user experience.
10. Documentation
Document the system architecture, database design, API endpoints, and
user manual.
Prepare project report and final presentation.
11
5. System Architecture:
A cloud-based notes storage application allows users to create, read, update, and
delete notes from any device, while storing data securely in the cloud. The
system is designed to be scalable, secure, and highly available. Its architecture
can be divided into multiple layers:
This is how the app is structured technically. For a cloud-based
notes app, a typical architecture could be 3-tier or cloud-
native.
Components:
Frontend (Client): Mobile app or Web app
o Handles user interface
o Sends API requests to backend
Backend (Application Server): RESTful API or GraphQL
o Processes requests
o Handles authentication, notes CRUD operations
o Syncs with cloud storage
Cloud Storage / Database:
o Stores notes securely
o Provides scalability
12
Figure.1 SYSTEM ARCHITECTURE
1. Use Case Diagram
A Use Case Diagram represents the interactions between users (actors) and
the system. It shows what the system does (functionalities) but not how it does
it.
Actors for Cloud-Based Notes Storage App:
User: The person who creates, edits, or deletes notes.
Admin (optional): Manages users, monitors storage usage.
Cloud Service: Handles storing and retrieving notes.
13
Figure.2 USE CASE
[Link] Flow Diagram (DFD)
A DFD shows how data moves through the system. It focuses
on processes, data stores, and external entities.
Level 0 (Context Diagram)
Entities:
User
Cloud Storage System
Level 1 (Detailed DFD)
1. User Authentication
o Input: Login credentials → Process: Validate → Output:
Access token or error
2. Note Operations
o Input: Note data → Process: Create/Edit/Delete →
Output: Confirmation
3. Sync to Cloud
14
o Input: Local notes → Process: Sync → Data Store:
Cloud Database → Output: Notes available across
devices
Figure.3 DATA FLOW
[Link] Diagram
A Sequence Diagram shows the time-based flow of
interactions between actors and the system for a particular use
case.
Actors & Components:
User
Frontend App
Backend Server
Cloud Database
Steps:
15
1. User types a note and hits "Save".
2. Frontend sends a POST request to backend API.
3. Backend authenticates user.
4. Backend validates note content.
5. Backend saves note to database/cloud storage.
6. Backend returns success response.
7. Frontend displays "Note Saved Successfully".
Figure.4 SEQUENCE DIAGRAM
[Link]:
Frontend (Client Side):
Mobile App: Flutter, React Native, or Swift/Kotlin
(iOS/Android native)
Web App (optional): [Link], Angular, or [Link]
UI Components: Material UI, Bootstrap, or custom design
Backend (Server Side):
Language/Framework: [Link] + Express, Django (Python),
Spring Boot (Java), or .NET Core
16
Authentication: JWT (JSON Web Tokens) or OAuth2
API Design: RESTful API or GraphQL
Database / Storage:
Cloud Database: Firebase Firestore, AWS DynamoDB,
MongoDB Atlas
File Storage (optional for attachments): AWS S3, Google
Cloud Storage, Azure Blob Storage
Other Services:
Push Notifications: Firebase Cloud Messaging (FCM)
Analytics: Google Analytics, Firebase Analytics
Backup / Sync: Cloud-based backups, offline sync support
Core Features to Implement
1. User Authentication & Authorization
o Sign up, login, logout
o Password reset
o JWT token-based authentication
2. Note Management
o Create, Read, Update, Delete (CRUD) notes
o Optionally categorize notes (folders or tags)
3. Cloud Sync
o Save notes to cloud database
o Sync notes across multiple devices
o Handle offline mode (store locally and sync when
online)
4. Search & Filters
o Search by title or content
o Filter by date, tags, or folders
5. Sharing & Collaboration (Optional)
17
o Share notes with other users
o Collaborative editing
6. Security
o Encrypted storage for sensitive notes
o HTTPS for all communications
o Role-based access if multiple users
Code:
1. [Link]:
plugins {
id("[Link]")
id("[Link]-services")
android {
namespace = "[Link].notes_app"
compileSdk = 34
defaultConfig {
applicationId = "[Link].notes_app"
minSdk = 24
targetSdk = 34
versionCode = 1
versionName = "1.0"
testInstrumentationRunner = "[Link]"
buildFeatures{
viewBinding = true
buildTypes {
release {
isMinifyEnabled = false
proguardFiles(
getDefaultProguardFile("[Link]"),
"[Link]"
)
18
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
dependencies {
implementation("[Link]:appcompat:1.6.1")
implementation("[Link]:material:1.11.0")
implementation("[Link]:constraintlayout:2.1.4")
implementation("[Link]:firebase-auth:22.3.1")
implementation("[Link]:firebase-firestore:24.10.2")
testImplementation("junit:junit:4.13.2")
androidTestImplementation("[Link]:junit:1.1.5")
androidTestImplementation("[Link]:espresso-core:3.5.1")
// dynamic Size
implementation ("[Link]:DynamicSizes:1.0")
// lottie animation
implementation ("[Link]:lottie:6.3.0")
// progress bar
implementation ("[Link]:Android-SpinKit:1.4.0")
// FirebaseUI for Cloud Firestore
implementation ("[Link]:firebase-ui-firestore:8.0.2")}
2. [Link]:
buildscript {
dependencies {
classpath("[Link]:google-services:4.4.1")
// Top-level build file where you can add configuration options common to all sub-
projects/modules.
plugins {
id("[Link]") version "8.2.2" apply false
19
}
3. [Link]:
pluginManagement {
repositories {
google()
mavenCentral()
gradlePluginPortal()
}}
dependencyResolutionManagement {
[Link](RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
google()
mavenCentral()
maven ( url = "[Link]
}}
[Link] = "Notes_app"
include(":app")
4. [Link]:
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="deploymentTargetDropDown">
<value>
<entry key="app">
<State />
</entry>
</value>
</component>
</project>
5. [Link]:
<?xml version="1.0" encoding="UTF-8"?>
20
<project version="4">
<component name="GradleMigrationSettings" migrationVersion="1" />
<component name="GradleSettings">
<option name="linkedExternalProjectsSettings">
<GradleProjectSettings>
<option name="externalProjectPath" value="$PROJECT_DIR$" />
<option name="gradleJvm" value="#GRADLE_LOCAL_JAVA_HOME" />
<option name="modules">
<set>
<option value="$PROJECT_DIR$" />
<option value="$PROJECT_DIR$/app" />
</set>
</option>
<option name="resolveExternalAnnotations" value="false" />
</GradleProjectSettings>
</option>
</component>
</project>
[Link]:
Below are the main outputs your application produces, written
exactly in project-report style.
21
22
[Link]:
23
The Cloud-Based Notes Storage App provides a seamless and
efficient platform for users to create, store, and access their
notes across multiple devices. By leveraging cloud storage, it
ensures data availability, scalability, and security, while offering
features like note creation, editing, deletion, search, and
synchronization.
Key takeaways:
Users can access notes anywhere and anytime due to
cloud-based synchronization.
Offline support ensures uninterrupted usage even without
internet connectivity.
Secure authentication and optional encryption protect
user data.
The app’s modular architecture (frontend, backend, cloud
storage) allows for easy maintenance and scalability.
Overall, the system improves productivity, organizes personal
or professional notes efficiently, and offers a foundation for
advanced features in the future.
Future Enhancements:
1. Real-Time Collaboration
o Enable multiple users to edit the same note
simultaneously, similar to Google Docs.
2. AI-Powered Features
o Auto-summarization of long notes.
o Smart categorization or tagging using AI/NLP.
3. Advanced Search
o Full-text search across all notes.
o Search by attachments or images using OCR (Optical
Character Recognition).
[Link]:
24
1. Amazon Web Services. (2024). AWS Cloud Documentation.
Retrieved from [Link]
2. Google Cloud. (2024). Firebase Realtime Database
Documentation. Retrieved from
[Link]
3. Mell, P., & Grance, T. (2011). The NIST definition of cloud
computing (NIST Special Publication 800-145). National
Institute of Standards and Technology.
4. Armbrust, M., Fox, A., Griffith, R., Joseph, A. D., Katz, R.,
Konwinski, A., & Zaharia, M. (2010). A view of cloud
computing. Communications of the ACM, 53(4), 50–58.
5. Buyya, R., Vecchiola, C., & Selvi, S. T. (2013). Mastering
Cloud Computing: Foundations and Applications
Programming. Elsevier.
6. Google Cloud. (2024). Cloud Firestore Documentation.
Retrieved from [Link]
7. Dinh, H. T., Lee, C., Niyato, D., & Wang, P. (2013). A survey
of mobile cloud computing: Architecture, applications, and
approaches. Wireless Communications and Mobile
Computing, 13(18), 1587–1611.
8. GitHub Inc. (2024). GitHub Repository Hosting and Version
Control. Retrieved from [Link]
25