Hadendocsfinal

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 72

HADEN

A project report submitted in partial fulfilment


of the requirement for the Award of the
Degree of
BACHELOR OF ENGINEERING
In
ARTIFICIAL INTELLIGENCE AND DATA
SCIENCE BY
K.NIHANTH (160722747057)
S.HARSH (160722747048)
B.DESHIK (160721747052)
Under the Guidance of
Mrs A. Sowjanya, Assistant Professor, Dept. of

CSE
Department of Artificial Intelligence and
Data Science Methodist College of
Engineering and Technology, King Koti,
Abids, Hyderabad-500001.
2024-2025
Methodist College of Engineering and
Technology, King Koti, Abids, Hyderabad-
500001.
Department of Artificial Intelligence and Data
Science

DECLARATION BY THE CANDIDATES


We, K.NIHANTH (160722747057),
S.HARSH (160722747048), B.DESHIK
(160721747052) students at
MethodistCollege of Engineering and
Technology, pursuingbachelor's degrees in
Artificial Intelligence and Data Science,
hereby declare that this project report
entitled “HADEN” carried out under the
guidance ofMrs. A. Sowjanya submitted in
partial fulfilment of the requirements for
the degree of Bachelor of Engineering in
Computer Science. This is a record of work
carried out by us and the results embodied
in this project have not been
reproduced/copied from any source.

K. N IH A N T H
(160722747057)
S.HARSH(16072274704
8)
B.DESHIK(160721747052
)
Methodist College of Engineering and
Technology, King Koti, Abids, Hyderabad-
500001.
Department of Artificial Intelligence and Data
Science

CERTIFICATE BY THE SUPERVISOR


This is to certify that this project report
entitled “HADEN” being submitted by
K.NIHANTH (160722747057),
S.HARSH (160722747048),
B.DESHIK (160721747052)
submitted in partial fulfilment of the requirements
for the degree of Bachelor of Engineering in
Artificial Intelligence and Data Science, during the
academic year 2024-2025, is a Bonafide record of
work carried out by them.

Mrs A. Sowjanya
Assistant Professor

Date:
King Koti, Abids, Hyderabad-500001.

Department of Computer Science and Engineering

Skill Development Course -III


(1PW560AD)
A.Y 2024-2025
This is to certify that this SDC Mini project report entitled
“HADEN”, being submitted by K.NIHANTH (160722747057),
S.HARSH (160722747048),
B . D E S H I K (160721747052) submitted in partial
fulfilment of the requirements for the degree of Bachelor of
Engineering in Computer Science and Engineering, during the
academic year 2024-2025, isa Bonafide record of work carried out
by them

INTERNAL EXTERNAL HOD


Methodist College of Engineering and
Technology, King Koti, Abids, Hyderabad-
500001.

Department of Artificial Intelligence and Data


Science

CERTIFICATE BY THE HEAD OF THE DEPARTMENT


This is to certify that this project report entitled “HADEN” by
K.NIHANTH(160722747057), S.HARSH (160722747048), B.
DESHIK
(160721747052) submitted in
partial fulfillment of the requirements for the degree of
Bachelor of Engineering in Artificial Intelligence and Data
Science of the Osmania University, Hyderabad, during the
academic year 2024-2025, is a bonafide record of work carried
out by them.
Dr. P. Lavanya,
Profess
or &Head of the
Department

Date:
ACKNOWLEDGEMNTS
We would like to express our sincere gratitude to my project
guide Mrs A. Sowjanya, Assistant Professor, for giving us the
opportunity to work on this topic. It would never be possible for us
to take this project to this level without her innovative ideas and
her relentless support and encouragement.
Our sincere thanks to Dr. P. Lavanya, Professor and Head
of the Department of Computer Science and Engineering,
for her valuable guidance and encouragement which has played
a major role in the completion of the project, and for helping us
by being an example of high vision and pushing towards greater
limits of achievement.
We would like to express a deep sense of gratitude towards Dr.
Prabhu G Benakop, Principal, of Methodist College of
Engineering and Technology, for always being an inspiration
and for always encouraging us in every possible way.
We would like to express a deep sense of gratitude towards Dr.
Lakshmipathi Rao, Director of, Methodist College of
Engineering and Technology, for always being an inspiration
and for always encouraging us in every possible way.
We are indebted to the Department of Computer Science &
Engineering and Methodist College of Engineering and Technology for
providing us with all the required facilities to carry out our work in
a congenial environment. We extend our gratitude to the CSE
Department staff for providing us with the needful time to time
whenever requested.
We would like to thank our parents for allowing us to realize our
potential, all the support they have provided us over the years was the
greatest gift anyone has ever given us and also for teaching us
the value of hard work and education. Our parents have offered
us tremendous support and encouragement, thanks to our
parents for all the moral support and the amazing opportunities
they have given us over the years.
ABSTRACT
This project presents the development of a
comprehensive student dashboard mobile application
designed to enhance academic management and student
engagement in the college environment. The application,
developed using Android Studio and implementing
Material Design principles, provides students with a centralize
platform to access essential academic information and services.
Key features include real-time grade tracking, course schedule
management, attendance monitoring, and direct
communication channels with faculty members.

The application utilizes Firebase for cloud-based data


synchronization, ensuringseamless access to up-to-date
information. Implementation results demonstrate
improved student organization, increased accessibility to
academic resources, and enhanced communication
between students and faculty. The dashboard's user-
centric design and intuitive interface contribute to high
user satisfaction rates among the student population.
TABLE OF CONTENT
1.INTRODUCTION…………..………………………………
2. EXISTING SYSTEM………………………………………
3. PROPOSED SYSTEM………………………………………..
4. SYSTEM STUDY……………………………………………….
5. SOFTWARE REǪUIREMENTS…………………………….
6. HARDWARE REǪUIREMENTS……………………………
7. SYSTEM ARCHITECTURE…………………………………..
8. CODING…………………………………………………………
9. OUTPUT SCREENTSHOTS…………………………………
10. CONCLUSION………………………………………………..
11. FUTURE ENHANCEMENT…………………………………
12. REFERENCES………………………………………………..
1. INTRODUCTION
This project focuses on creating Haden, a versatile
Android application designed to make learning,
organization, and personal growth engaging and effective.
Haden offers students an interactive and user-friendly
platform to manage their academic and personal
endeavors.
The app provides features like spaced-repetition
flashcards, digital note-making, and a customizable
student dashboard to track progress, manage
schedules, and stay organized. With, users can test their
knowledge through multiple-choice questions, receive
instant feedback, and track their performance with
detailed analytics.
Designed using Android Studio, Kotlin, and XML, Haden
ensures a modern, visually appealing interface aligned
with Material Design principles, making it simple to
navigate for users of all skill levels.
Key features include:
 Flashcards with Spaced Repetition: Helps
reinforce learning and improve memory retention.
 Digital Notes: Create, edit, and organize notes in an
intuitive workspace.
2. EXISTING SYSTEM
Traditional student and learning management
applications often provide a fragmented and limited
experience.
Typically, these systems offer basic features like note-
taking, but they often lack advanced functionalities
like spaced repetition or integrated dashboards for
holistic management.
Many existing apps have static interfaces and are
not fully optimized for mobile platforms, leading to
usability challenges. Feedback mechanisms are
minimal, often providing delayed or superficial
feedback, which hinders real-time learning.
Additionally, score tracking and progress
monitoring are either absent or rudimentary,
making it difficult for users to evaluate and improve
their performance over time.
Key limitations include:
 Lack of Personalization: Most apps do
not offer customizable features such as
tailored quizzes or topic preferences.
 Static Content: Content is rarely
updated, and quizzes often use repetitive
question sets.
 Ineffective Interfaces: User interfaces
may be outdated or not designed for
intuitive navigation, particularly on mobile
devices.
 Limited Interactivity: Features like streak
tracking, interactive flashcards, or real-time
engagement are missing.
 Compatibility Issues: Many systems fail to
adapt seamlessly across different devices and
screen sizes.
Overall, these traditional systems do not fully cater
to the diverse needs of modern learners, missing
opportunities to enhance engagement,
accessibility, and effective learning strategies.
3. PROPOSED SYSTEM
The proposed App is designed to revolutionize the
way students manage their academic
responsibilities.The app empowers students to take
control of their learning journey.
Developed using mobile technologies, the app
features a sleek, user-friendly interface that is
compatible with various devices This system sets a
new benchmark for educational productivity tools
by combining functionality, accessibility, and a
focus on personalized learning.

FEATURES
1.User-Friendly Interface:
o A clean, intuitive design ensures

smooth navigation and interaction


for all users.
2.Digital Notemaking:
o Offers tools for creating, editing, and

organizing notes, including folder


structures and tags for quick access.
3.Cloud Synchronization:
o Ensures notes, schedules, and progress

data are available across devices with


automatic backups.
4.Offline Accessibility:
o Basic functionality, such as note-taking

and schedule viewing, works without an


internet connection, supporting
uninterrupted learning.
4. SYSTEM STUDY
4.a. Feasibility Study
4.a.1. Operational Feasibility
User Adoption:
 Meets growing demand for interactive learning
 Appeals to students, professionals, and
 Provides engaging knowledge assessment platform
Ease of Use:
 Intuitive, modern user interface
 Simple onboarding process
4.a.2. Economic Feasibility
Cost Efficiency:
 Minimal operational costs
 Potential revenue streams through:
o Institutional subscriptions

o In-app purchases

4.a.3. Technical Feasibility


Technology Stack:
 Frontend: Android (Java/Kotlin)
 Backend: Firebase
 Database: Firestore
Integration Capabilities:
 Third-party authentication
 Educational platform integrations
5. SOFTWARE REQUIREMENTS
1. Android Studio: IDE for Android app development.
2. Java/Kotlin: Programming languages for app logic.
3. XML: For designing the user interface.
4. Android SDK: Required libraries and tools
for app development

6. HARDWARE REQUIREMENTS
1. Processor: Dual-core or higher.
2. RAM: Minimum 4 GB.
3. Storage: At least 5 GB of free space.
4. Android Device/Emulator: For testing the app.
7. SYSTEM ARCHITECTURE

The system architecture depicted in the image can be described as


follows:
1. Key Components
a. Dashboard
 User Profile: Allows users to access and manage personal details.
 Quick Access Widgets: Offers shortcuts to frequently used
features for enhanced usability.
b. Notes Module
 Text Editor: Enables users to create, edit, and format notes.
 Organization Tools: Provides functionality to organize notes
into folders or categories for better management.
c. Flashcards Module
 Progress Tracker: Tracks the user's performance and mastery
of topics through the flashcards.
 Spaced Repetition Scheduler: Utilizes algorithms to optimize
the timing for reviewing flashcards, ensuring effective learning.

2. Data Flow
 Dashboard:
o Serves as the entry point, allowing users to access notes
and flashcards.
o Provides an overview of user-specific content via
Quick Access Widgets.
 Notes Module:

o Users can create and organize notes using the Text Editor
and Organization Tools.
o Notes can be used to generate flashcards, connecting
the Notes and Flashcards modules.
 Flashcards Module:

o Users can access flashcards created from their notes.


o Flashcards are managed through the Progress Tracker and
the Spaced Repetition Scheduler to enhance learning
outcomes.
3. Key Interactions
1. Accessing Notes:
o From the Dashboard, users navigate to the Notes module
to create or manage notes.
2. Creating Flashcards:
o Notes can be converted into flashcards for easy study
and review.
3. Tracking Progress:
o Flashcards interact with the Progress Tracker to
provide feedback on user performance.
4. Optimized Learning:
o The Spaced Repetition Scheduler ensures users
review flashcards at optimal intervals for retention.

4. Design Principles
 Modularity: The system is divided into interconnected modules
(Dashboard, Notes, Flashcards) that can operate independently
or together.
 User-Centric Design: Prioritizes accessibility and
personalized learning tools.
 Scalability: The architecture allows for future expansions, such
as integrating advanced analytics or new features.
7. a. ALGORITHM

Step 1: User Registration and Authentication

Step 2: Note Creation and Organization

Step 3: Flashcard Generation

Step 4: Real-time Flashcard Practice

Step 5: Performance Tracking and Feedback

Step 6: Personalized Recommendations


7. CODING
8 a. HOME ACTIVITY
package com.example.haden

import android.os.Bundle

import
com.google.android.material.bottomnavigation.BottomNavigationView
import androidx.appcompat.app.AppCompatActivity
import androidx.navigation.findNavController import
androidx.navigation.ui.AppBarConfiguration import
androidx.navigation.ui.setupActionBarWithNavControlle
r import androidx.navigation.ui.setupWithNavController
import
com.example.haden.databinding.ActivityHomeBinding

class HomeActivity : AppCompatActivity()

{ private lateinit var binding:

ActivityHomeBinding

override fun onCreate(savedInstanceState: Bundle?) {


super.onCreate(savedInstanceState)

binding = ActivityHomeBinding.inflate(layoutInflater)
setContentView(binding.root)

val navView: BottomNavigationView =

binding.navView val navController =


findNavController(R.id.nav_host_fragment_activity_home)
// Passing each menu ID as a set of Ids because each
// menu should be considered as top level
destinations.

//
setupActionBarWithNavController(navController,
appBarConfiguration)
navView.setupWithNavController(navController)
}

}
8 b. LOGIN ACTIVITY
package com.example.haden

import android.content.Intent import android.os.Bundle import


android.widget.Toast import androidx.activity.enableEdgeToEdge
import androidx.appcompat.app.AppCompatActivity import
androidx.core.view.ViewCompat import
androidx.core.view.WindowInsetsCompat import
com.example.haden.Models.User import
com.example.haden.databinding.ActivityLoginBinding import
com.google.firebase.auth.FirebaseAuth import
com.google.firebase.auth.FirebaseAuthInvalidCredentialsException
import com.google.firebase.auth.FirebaseAuthInvalidUserException

class LoginActivity : AppCompatActivity() { private val binding by lazy


{ ActivityLoginBinding.inflate(layoutInflater) } private lateinit var
auth:
FirebaseAuth // Initialize FirebaseAuth here

override fun onCreate(savedInstanceState:


Bundle?) { super.onCreate(savedInstanceState)
enableEdgeToEdge()
setContentView(binding.root)
auth = FirebaseAuth.getInstance() // Initialize here

binding.createBtn.setOnClickListener {
startActivity(Intent(this@LoginActivity,
SignUpActivity::class.java))
}

binding.loginBtn.setOnClickListener
{ val email =
binding.email.editText?.text.toString().trim
() val password =
binding.pass.editText?.text.toString().trim()

if (email.isEmpty() || password.isEmpty()) {
Toast.makeText(this, "Please fill in both
email and password", Toast.LENGTH_SHORT).show()
return@setOnClickListener
}

if (!isValidEmail(email)) {
Toast.makeText(this, "Invalid email
address format", Toast.LENGTH_SHORT).show()
return@setOnClickListener
}
// Attempt to login with Firebase
auth.signInWithEmailAndPassword(email, password)
.addOnCompleteListener(this) { task
-> if (task.isSuccessful) {
// Sign in success, update UI with
the signed-in user's information

startActivity(Intent(this@LoginActivity,HomeActivity::class
.j ava))
finish()
} else {
// If sign in fails, display a message
the to
user.
val exception =
task.exception if (exception
is
FirebaseAuthInvalidCredentialsException) {
Toast.makeText(this, "Invalid
credentials. Please check your email and password.",
Toast.LENGTH_LONG).show()
} else if (exception is
FirebaseAuthInvalidUserException) {
if ((exception as
FirebaseAuthInvalidUserException).errorCode ==
"ERROR_USER_NOT_FOUND") {
Toast.makeText(this, "No account
found for this email. Please register first.",
Toast.LENGTH_LONG).show()
} else {
Toast.makeText(this,
exception.localizedMessage, Toast.LENGTH_LONG).show()
}
} else {
// Handle other exceptions
Toast.makeText(this, "Authentication
failed: ${exception?.localizedMessage}",
Toast.LENGTH_LONG).show()
}
}
}
}

// Your window insets listener remains the same


ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id
.m ain)) { v, insets ->
val systemBars =
insets.getInsets(WindowInsetsCompat.Type.systemBars())
v.setPadding(systemBars.left, systemBars.top,
systemBars.right, systemBars.bottom)
insets
}
}

private fun isValidEmail(email: String):


Boolean { return
android.util.Patterns.EMAIL_ADDRESS.matcher(email).matches(
)
}

8 c. HOME FRAGMENT
package com.example.haden.fragments

import android.content.Intent import android.os.Bundle import


androidx.fragment.app.Fragment import android.view.LayoutInflater
import android.view.View import android.view.ViewGroup import
androidx.cardview.widget.CardView import com.example.haden.R
import com.example.haden.ScheduleActivity import
com.example.haden.ToDoListActivity import
com.example.haden.VideoSummaryActivity

class HomeFragment : Fragment() {

override fun onCreateView(


inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
// Inflate the layout for this fragment
return
inflater.inflate(R.layout.fragment_home,
container, false)
}

override fun onViewCreated(view: View, savedInstanceState:


Bundle?) {
super.onViewCreated(view, savedInstanceState)

// Set the click listener for the ToDo List card

view.findViewById<CardView>(R.id.todolist)?.setOnClickLi
stene r {
val intent = Intent(requireContext(),
ToDoListActivity::class.java)
startActivity(intent) // Removed
FLAG_ACTIVITY_NEW_TASK
}

view.findViewById<CardView>(R.id.schedule)?.setOnClickLi
stene r {
val intent = Intent(requireContext(),
ScheduleActivity::class.java)
startActivity(intent)
}

view.findViewById<CardView>(R.id.videosummary)?.setOnClickL
is tener {
val intent = Intent(requireContext(),
VideoSummaryActivity::class.java)
startActivity(intent)
}

8 d. NOTES FRAGMENT
package com.example.haden.fragments

import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.Button
import android.widget.EditText
import androidx.fragment.app.Fragment
import
androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.example.haden.Models.Note
import com.example.haden.Models.NotesAdapter
import com.example.haden.R
import com.google.firebase.auth.FirebaseAuth
import com.google.firebase.firestore.FirebaseFirestore

class NotesFragment : Fragment() {

private lateinit var noteInput: EditText


private lateinit var saveNoteButton: Button
private lateinit var convertToFlashcardButton: Button
private lateinit var flashcardRecyclerView: RecyclerView
private lateinit var adapter: NotesAdapter
private val notesList = mutableListOf<Note>() // List to store notes

private val sharedPrefKey = "NOTES_KEY" // SharedPreferences


key for notes

private val db = FirebaseFirestore.getInstance()

override fun onCreateView(


inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
return inflater.inflate(R.layout.fragment_notes, container, false)
}

override fun onViewCreated(view: View, savedInstanceState:


Bundle?) {
super.onViewCreated(view, savedInstanceState)

// Initialize views
noteInput = view.findViewById(R.id.noteInput)
saveNoteButton = view.findViewById(R.id.saveNoteButton)
convertToFlashcardButton =
view.findViewById(R.id.convertToFlashcardButton)
flashcardRecyclerView =
view.findViewById(R.id.flashcardRecyclerView)

// Load notes from Firestore when the fragment is created


loadNotesFromFirestore()

// Set up RecyclerView
flashcardRecyclerView.layoutManager =
LinearLayoutManager(requireContext())
adapter = NotesAdapter(notesList)
flashcardRecyclerView.adapter = adapter

// Save a note when the button is clicked


saveNoteButton.setOnClickListener {
val noteText = noteInput.text.toString()
if (noteText.isNotEmpty()) {
val note = Note(noteText) // Customize as needed
notesList.add(note) // Add to local list
saveNoteToFirestore(note) // Save to Firestore
noteInput.text.clear() // Clear input field
adapter.notifyDataSetChanged() // Update RecyclerView
}
}

// Placeholder for "Convert to Flashcards" button


convertToFlashcardButton.setOnClickListener {
// Conversion logic can be added later
}
}
// Load notes from Firestore
private fun loadNotesFromFirestore() {
val userId = FirebaseAuth.getInstance().currentUser?.uid
if (userId != null) {
val notesRef =
db.collection("users").document(userId).collection("notes")
notesRef.get()
.addOnSuccessListener { result ->
val loadedNotes = mutableListOf<Note>()
for (document in result) {
val note = document.toObject(Note::class.java)
loadedNotes.add(note)
}

// After fetching notes, update RecyclerView


notesList.clear()
notesList.addAll(loadedNotes)
adapter.notifyDataSetChanged() // Notify the adapter to
update the UI
}
.addOnFailureListener { exception ->
// Handle error
println("Error loading notes: $exception")
}
} else {
println("User not authenticated")
}
}

// Save note to Firestore


private fun saveNoteToFirestore(note: Note) {
val userId = FirebaseAuth.getInstance().currentUser?.uid
if (userId != null) {
val notesRef =
db.collection("users").document(userId).collection("notes")
notesRef.add(note)
.addOnSuccessListener
{ println("Note saved
successfully")
}
.addOnFailureListener { exception ->
println("Error saving note: $exception")
}
} else {
println("User not authenticated")
}
}
}
8 e. NOTIFICATION FRAGMENT
package com.example.haden.fragments

import android.os.Bundle import androidx.fragment.app.Fragment


import android.view.LayoutInflater import android.view.View import
android.view.ViewGroup import com.example.haden.R

// TODO: Rename parameter arguments, choose names that


match // the fragment initialization parameters, e.g.
ARG_ITEM_NUMBER private const val ARG_PARAM1 = "param1"
private const val ARG_PARAM2 = "param2"

/**

 A simple [Fragment] subclass.


 Use the [NotificationsFragment.newInstance] factory method to
 create an instance of this fragment.

*/ class NotificationsFragment : Fragment() { // TODO: Rename and


change types of parameters private var param1: String? = null
private var param2: String? = null
override fun onCreate(savedInstanceState:
Bundle?) {
super.onCreate(savedInstanceState)
arguments?.let {
param1 = it.getString(ARG_PARAM1)
param2 = it.getString(ARG_PARAM2)
}
}

override fun onCreateView(


inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
// Inflate the layout for this fragment
return
inflater.inflate(R.layout.fragment_notifications,
container, false)
}

companion object {
/**
* Use this factory method to create a new instance of
* this fragment using the provided parameters.
*
* @param param1 Parameter 1.
* @param param2 Parameter 2.
* @return A new instance of
fragment NotificationsFragment.
*/
// TODO: Rename and change types and number of
parameters @JvmStatic
fun newInstance(param1: String, param2: String) =
NotificationsFragment().apply {
arguments = Bundle().apply
{ putString(ARG_PARAM1, param1)
putString(ARG_PARAM2, param2)
}
}
}

8 f. HOME ACTIVITY XML


<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/andr
oid" xmlns:app="http://schemas.android.com/apk/res-
auto" android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<com.google.android.material.bottomnavigation.BottomNavigat
io nView
android:id="@+id/nav_view"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:background="@color/black"
app:itemIconTint="@null"
app:layout_constraintBottom_toBottomOf="par
ent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="paren
t" app:menu="@menu/bottom_nav_menu" />

<fragment
android:id="@+id/nav_host_fragment_activity_home"

android:name="androidx.navigation.fragment.NavHostFragme
nt" android:layout_width="match_parent"
android:layout_height="match_parent"
app:defaultNavHost="true"
app:layout_constraintBottom_toTopOf="@id/nav_view"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:navGraph="@navigation/mobile_navigation"
/>

</androidx.constraintlayout.widget.ConstraintLayout>

8 g. LOGIN ACTIVITY XML

<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/main" android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/black"
tools:context=".LoginActivity">

<ImageView
android:id="@+id/
imageView2"
android:layout_width="135d
p"
android:layout_height="138
dp"
android:layout_marginTop="112dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="paren
t"
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@drawable/img" />

<com.google.android.material.textfield.TextInputLayou
t android:id="@+id/email"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="24dp"
android:layout_marginTop="24dp"
android:layout_marginEnd="24dp"
android:hint="Email_id"
android:textColorHint="@color/white"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/imageVi
ew2">

<com.google.android.material.textfield.TextInputEditTex
t android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="@color/white"
android:visibility="visible" />

</com.google.android.material.textfield.TextInputLayout>

<com.google.android.material.textfield.TextInputLayout

android:id="@+id/pass"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="24dp"
android:layout_marginTop="24dp"
android:layout_marginEnd="24dp"
android:hint="password"
android:textColorHint="@color/white"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/emai
l">

<com.google.android.material.textfield.TextInputEditTex
t android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="@color/white"
android:visibility="visible" />
</com.google.android.material.textfield.TextInputLayout>

<Button

android:id="@+id/login_btn"
style="@style/Widget.Material3.Button.ElevatedButton"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:backgroundTint="#1B07ED"
android:text="Login"
android:textColor="@color/white"
app:layout_constraintEnd_toEndOf="@+id/pass"
app:layout_constraintStart_toStartOf="@+id/pas
s"
app:layout_constraintTop_toBottomOf="@+id/pas
s" />

<Button
android:id="@+id/create_btn"

style="@style/
Widget.Material3.Button.OutlinedButton"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="Create new account"

android:textColor="@color/white"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="@+id/login_btn"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="@+id/login_btn"
app:layout_constraintTop_toBottomOf="@+id/login_btn"
app:layout_constraintVertical_bias="0.824" />

</androidx.constraintlayout.widget.ConstraintLayout>

8 h. HOME FRAGMENT XML


<!-- Welcome Text -->
<TextView
android:layout_width="match_parent
"
android:layout_height="wrap_content"
android:text=" Welcome to
Haden" android:textColor="@color/white"
android:textStyle="italic"
android:textSize="24sp"
android:layout_marginTop="50dp"/>

<!-- GridLayout for the CardViews -->


<GridLayout
android:layout_width="match_paren
t"
android:layout_height="match_pare
nt" android:rowCount="3"
android:columnCount="2"
android:layout_marginLeft="24dp"
android:layout_marginRight="24dp"
android:layout_marginTop="150dp"
android:orientation="horizontal">

<!-- ToDo List Card -->


<androidx.cardview.widget.CardView
android:id="@+id/todolist"
android:layout_width="150dp"
android:layout_height="150dp"
app:cardCornerRadius="15dp"
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:layout_row="1"
android:layout_column="0"
android:layout_margin="15dp">

<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent
" android:orientation="vertical"
android:background="@color/black"
android:gravity="center">

<ImageView
android:layout_width="80dp"
android:layout_height="80dp"
android:src="@drawable/todo"
android:layout_gravity="center"
android:layout_marginTop="20dp"/
>

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="To Do List"
android:textColor="@color/white"
android:layout_gravity="center_horizontal"
android:textSize="18sp"
android:textStyle="bold"/>

</LinearLayout>
</androidx.cardview.widget.CardView>

<!-- Schedule Card -->


<androidx.cardview.widget.CardView
android:id="@+id/schedule"
android:layout_width="150dp"
android:layout_height="150dp"
app:cardCornerRadius="15dp"
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:layout_row="1"
android:layout_column="1"
android:layout_margin="15dp">

<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent
" android:orientation="vertical"
android:background="@color/black"
android:gravity="center">

<ImageView
android:layout_width="80dp"
android:layout_height="80dp"
android:src="@drawable/event"
android:layout_gravity="center"
android:layout_marginTop="20dp"/
>

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Schedule"
android:textColor="@color/white"
android:layout_gravity="center_horizontal"
android:textSize="18sp"
android:textStyle="bold"/>

</LinearLayout>
</androidx.cardview.widget.CardView>

<!-- Video Summary Card -->


<androidx.cardview.widget.CardV
iew
android:id="@+id/videosumma
ry"
android:layout_width="150dp
"
android:layout_height="150dp"
app:cardCornerRadius="15dp"
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:layout_row="2"
android:layout_column="0"
android:layout_margin="15dp">

<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent
" android:orientation="vertical"
android:background="@color/black">

<ImageView
android:layout_width="80dp"
android:layout_height="80dp"
android:src="@drawable/video"
android:layout_gravity="center"
android:layout_marginTop="20dp"/
>

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Video Summary"
android:textColor="@color/white"
android:layout_gravity="center_horizontal"
android:textSize="18sp"
android:textStyle="bold"/>

</LinearLayout>
</androidx.cardview.widget.CardView>

<!-- To Do List 2 Card -->


<androidx.cardview.widget.CardView
android:id="@+id/revision"
android:layout_width="150dp"
android:layout_height="150dp"
app:cardCornerRadius="15dp"
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:layout_row="2"
android:layout_column="1"
android:layout_margin="15dp">

<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent
" android:orientation="vertical"
android:background="@color/black">

<ImageView
android:layout_width="80dp"
android:layout_height="80dp"
android:src="@drawable/revision"
android:layout_gravity="center"
android:layout_marginTop="20dp"/
>

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Revision"
android:textColor="@color/white"
android:layout_gravity="center_horizontal"
android:textSize="18sp"
android:textStyle="bold"/>

</LinearLayout>
</androidx.cardview.widget.CardView>

</GridLayout>
8 i. NOTES FRAGMENT XML
<!-- Input for notes -->
<EditText
android:id="@+id/noteInput"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:background="@android:drawable/edit_text"
android:backgroundTint="@color/white"
android:hint="Type your note here"
android:padding="12dp"
android:textColor="@color/black"
android:textColorHint="@color/black"
tools:backgroundTint="@color/black" />

<!-- Save Note button -->


<Button
android:id="@+id/saveNoteButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:backgroundTint="@color/white"
android:text="Save Note"
android:textColor="@color/black"
android:padding="12dp" />

<!-- Button to convert notes to flashcards -->


<Button
android:id="@+id/convertToFlashcardButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="16dp"
android:backgroundTint="@color/white"
android:text="Convert to Flashcards"
android:textColor="@color/black"
android:padding="12dp" />

<!-- Display title for flashcards -->


<TextView
android:id="@+id/flashcardTitle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:padding="8dp"
android:text="Flashcards:"
android:textColor="@color/white"
android:textSize="18sp"
android:textStyle="bold" />

<!-- Display list of flashcards -->


<androidx.recyclerview.widget.RecyclerView
android:id="@+id/flashcardRecyclerView"
android:layout_width="match_parent"

android:layout_height="0dp"
android:layout_weight="1"
android:clipToPadding="false"
android:padding="8dp" />

8 j. NOTIFICATION FRAGMENT XML


<!-- TODO: Update blank fragment layout -->
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="No Notifications Yet"
android:textColor="@color/white"
android:textSize="24sp"
android:layout_gravity="center_horizontal"/>
</FrameLayout>
8. OUTPUT SCREENSHOTS
9. CONCLUSION

We conclude, Utilizing the Student Dashboard App


leads to improved time management, increased
motivation, and better academic performance.
Students can set goals, track progress, and access
learning materials easily, which fosters a sense of
ownership over their education and encourages
active participation in their learning journey.

the Student Dashboard App empowers


students to take charge of their education by
fostering improved time management,
heightened motivation, and enhanced academic
performance. By offering tools that enable
students to set goals, track their progress, and
access educational materials effortlessly, the
app promotes a proactive and self-directed
approach to learning.

Through its intuitive design and functionality, the


Student Dashboard App inspires active
participation and engagement, ultimately paving the
way for a more fulfilling and successful educational
experience.
10. FUTURE ENHANCEMENTS

The Student Dashboard App serves as a vital tool for


enhancing student engagement and academic
success. As educational technology evolves,
continuous updates and improvements will ensure that
the app meets the changing needs of students and
educators alike, paving the way for future innovations.

The Student Dashboard App is a comprehensive


platform designed to enhance student engagement,
streamline academic management, and foster a
supportive learning environment. Serving as a
centralized hub, the app provides students with
access to key academic resources, personalized
learning tools, and performance tracking features.

By leveraging technology and data-driven insights,


the Student Dashboard App adapts to the evolving
needs of students and educators. Future updates
could include AI-driven tutoring, gamified learning
modules, and augmented reality (AR) integration for
an immersive educational experience, ensuring the
app remains a cutting-edge tool in the digital
education landscape.
12. REFERENCES
 - https://firebase.google.com/
 - https://developer.android.com/
 -https://chatgpt.com/

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy