diff --git a/src/app/notes/page.tsx b/src/app/notes/page.tsx
new file mode 100644
index 0000000..1759980
--- /dev/null
+++ b/src/app/notes/page.tsx
@@ -0,0 +1,41 @@
+import React, { useState } from 'react';
+import { Sidebar } from '@/components/Sidebar';
+import { NoteList } from '@/components/NoteList';
+import { AddNoteButton } from '@/components/AddNoteButton';
+import { NewNoteModal } from '@/components/NewNoteModal';
+
+function NotesPage() {
+ const [notes, setNotes] = useState([]);
+ const [isModalOpen, setIsModalOpen] = useState(false);
+
+ const handleSelectNote = (noteId: string) => {
+ // Handle note selection
+ };
+
+ const handleAddNote = () => {
+ setIsModalOpen(true);
+ };
+
+ const handleSaveNote = (title: string, content: string) => {
+ // Handle saving the new note
+ setIsModalOpen(false);
+ };
+
+ const handleCloseModal = () => {
+ setIsModalOpen(false);
+ };
+
+ return (
+
+ );
+}
+
+export default NotesPage;
diff --git a/src/components/AddNoteButton.tsx b/src/components/AddNoteButton.tsx
new file mode 100644
index 0000000..1fc137b
--- /dev/null
+++ b/src/components/AddNoteButton.tsx
@@ -0,0 +1,17 @@
+import React from 'react';
+
+interface AddNoteButtonProps {
+ onClick: () => void;
+}
+
+export function AddNoteButton({ onClick }: AddNoteButtonProps) {
+ return (
+
+ );
+}
diff --git a/src/components/Modal.tsx b/src/components/Modal.tsx
new file mode 100644
index 0000000..ea39e65
--- /dev/null
+++ b/src/components/Modal.tsx
@@ -0,0 +1,23 @@
+import React, { ReactNode } from 'react';
+
+interface ModalProps {
+ isOpen: boolean;
+ onClose: () => void;
+ children: ReactNode;
+}
+
+export function Modal({ isOpen, onClose, children }: ModalProps) {
+ if (!isOpen) return null;
+
+ return (
+
+
e.stopPropagation()}>
+ {children}
+
+
+ );
+}
diff --git a/src/components/NewNoteModal.tsx b/src/components/NewNoteModal.tsx
new file mode 100644
index 0000000..60c3d53
--- /dev/null
+++ b/src/components/NewNoteModal.tsx
@@ -0,0 +1,19 @@
+import React from 'react';
+import { Modal } from '@/components/Modal';
+import { NoteForm } from '@/components/NoteForm';
+
+interface NewNoteModalProps {
+ isOpen: boolean;
+ onClose: () => void;
+ onSaveNote: (title: string, content: string) => void;
+}
+
+export function NewNoteModal({ isOpen, onClose, onSaveNote }: NewNoteModalProps) {
+ return (
+
+ ×
+ Create New Note
+
+
+ );
+}
diff --git a/src/components/NoteForm.tsx b/src/components/NoteForm.tsx
new file mode 100644
index 0000000..53bf189
--- /dev/null
+++ b/src/components/NoteForm.tsx
@@ -0,0 +1,41 @@
+import React, { useState } from 'react';
+
+interface NoteFormProps {
+ onSave: (title: string, content: string) => void;
+}
+
+export function NoteForm({ onSave }: NoteFormProps) {
+ const [title, setTitle] = useState('');
+ const [content, setContent] = useState('');
+
+ const handleSubmit = (event: React.FormEvent) => {
+ event.preventDefault();
+ onSave(title, content);
+ setTitle('');
+ setContent('');
+ };
+
+ return (
+
+ );
+}
diff --git a/src/components/NoteItem.tsx b/src/components/NoteItem.tsx
new file mode 100644
index 0000000..09e9dcd
--- /dev/null
+++ b/src/components/NoteItem.tsx
@@ -0,0 +1,16 @@
+import React from 'react';
+
+interface NoteItemProps {
+ title: string;
+ date: string;
+ onClick: () => void;
+}
+
+export function NoteItem({ title, date, onClick }: NoteItemProps) {
+ return (
+
+ {title}
+ {date}
+
+ );
+}
diff --git a/src/components/NoteList.tsx b/src/components/NoteList.tsx
new file mode 100644
index 0000000..9202055
--- /dev/null
+++ b/src/components/NoteList.tsx
@@ -0,0 +1,28 @@
+import React from 'react';
+import { NoteItem } from '@/components/NoteItem';
+
+interface Note {
+ id: string;
+ title: string;
+ date: string;
+}
+
+interface NoteListProps {
+ notes: Note[];
+ onSelectNote: (noteId: string) => void;
+}
+
+export function NoteList({ notes, onSelectNote }: NoteListProps) {
+ return (
+
+ {notes.map(note => (
+ onSelectNote(note.id)}
+ />
+ ))}
+
+ );
+}
diff --git a/src/components/Sidebar.tsx b/src/components/Sidebar.tsx
new file mode 100644
index 0000000..bf16870
--- /dev/null
+++ b/src/components/Sidebar.tsx
@@ -0,0 +1,37 @@
+import React from 'react';
+import Image from 'next/image';
+import Link from 'next/link';
+
+interface SidebarProps {
+ activeSection: string;
+}
+
+export default function Sidebar({ activeSection }: SidebarProps) {
+ const sections = [
+ { name: 'Home', icon: 'H', href: '/' },
+ { name: 'Physics', icon: 'P', href: '/physics' },
+ { name: 'Chemistry', icon: 'C', href: '/chemistry' },
+ { name: 'Settings', icon: 'S', href: '/settings' },
+ ];
+
+ return (
+
+ );
+}