diff --git a/frontend/src/components/BookCard/BookCard.module.scss b/frontend/src/components/BookCard/BookCard.module.scss
deleted file mode 100644
index ef97211..0000000
--- a/frontend/src/components/BookCard/BookCard.module.scss
+++ /dev/null
@@ -1,11 +0,0 @@
-.card {
- display: block;
- width: 180px;
- border: 1px solid var(--border-color);
- border-radius: 8px;
- padding: 0.75rem;
- background: var(--card-bg);
-}
-.cover { width: 100%; border-radius: 4px; margin-bottom: 0.5rem; }
-.title { font-size: 1rem; margin-bottom: 0.25rem; color: var(--text-color); }
-.author { font-size: 0.875rem; color: var(--muted-text); margin-bottom: 0.5rem; }
diff --git a/frontend/src/components/BookCard/BookCard.tsx b/frontend/src/components/BookCard/BookCard.tsx
deleted file mode 100644
index 2097159..0000000
--- a/frontend/src/components/BookCard/BookCard.tsx
+++ /dev/null
@@ -1,19 +0,0 @@
-import { Link } from 'react-router-dom';
-import { Book } from '../../models/Book';
-import RatingStars from '../RatingStars/RatingStars';
-import styles from './BookCard.module.scss';
-
-interface BookCardProps {
- book: Book;
-}
-
-export default function BookCard({ book }: BookCardProps) {
- return (
-
-
-
{book.title}
- {book.author}
-
-
- );
-}
diff --git a/frontend/src/components/Footer/Footer.module.scss b/frontend/src/components/Footer/Footer.module.scss
deleted file mode 100644
index b9a1805..0000000
--- a/frontend/src/components/Footer/Footer.module.scss
+++ /dev/null
@@ -1,7 +0,0 @@
-.footer {
- padding: 1rem 1.5rem;
- text-align: center;
- border-top: 1px solid var(--border-color);
- font-size: 0.875rem;
- color: var(--muted-text);
-}
diff --git a/frontend/src/components/Footer/Footer.tsx b/frontend/src/components/Footer/Footer.tsx
deleted file mode 100644
index 4492f98..0000000
--- a/frontend/src/components/Footer/Footer.tsx
+++ /dev/null
@@ -1,9 +0,0 @@
-import styles from './Footer.module.scss';
-
-export default function Footer() {
- return (
-
- );
-}
diff --git a/frontend/src/components/Header/Header.module.scss b/frontend/src/components/Header/Header.module.scss
deleted file mode 100644
index 3910404..0000000
--- a/frontend/src/components/Header/Header.module.scss
+++ /dev/null
@@ -1,9 +0,0 @@
-.header {
- display: flex;
- align-items: center;
- padding: 1rem 1.5rem;
- border-bottom: 1px solid var(--border-color);
- background: var(--surface);
- backdrop-filter: blur(6px);
-}
-.logo { font-weight: 700; font-size: 1.25rem; color: var(--text-color); }
diff --git a/frontend/src/components/Header/Header.tsx b/frontend/src/components/Header/Header.tsx
deleted file mode 100644
index a141ad2..0000000
--- a/frontend/src/components/Header/Header.tsx
+++ /dev/null
@@ -1,10 +0,0 @@
-import { Link } from 'react-router-dom';
-import styles from './Header.module.scss';
-
-export default function Header() {
- return (
-
- );
-}
diff --git a/frontend/src/components/Layout/Layout.module.scss b/frontend/src/components/Layout/Layout.module.scss
deleted file mode 100644
index 308db61..0000000
--- a/frontend/src/components/Layout/Layout.module.scss
+++ /dev/null
@@ -1,10 +0,0 @@
-.layout {
- display: flex;
- flex-direction: column;
- min-height: 100%;
-}
-
-.content {
- flex: 1;
- padding: 1.5rem;
-}
diff --git a/frontend/src/components/Layout/Layout.tsx b/frontend/src/components/Layout/Layout.tsx
deleted file mode 100644
index 50d8678..0000000
--- a/frontend/src/components/Layout/Layout.tsx
+++ /dev/null
@@ -1,18 +0,0 @@
-import { Outlet } from 'react-router-dom';
-import Header from '../Header/Header';
-import Navbar from '../Navbar/Navbar';
-import Footer from '../Footer/Footer';
-import styles from './Layout.module.scss';
-
-export default function Layout() {
- return (
-
-
-
-
-
-
-
-
- );
-}
diff --git a/frontend/src/components/LoadingSpinner/LoadingSpinner.module.scss b/frontend/src/components/LoadingSpinner/LoadingSpinner.module.scss
deleted file mode 100644
index bcdb7f5..0000000
--- a/frontend/src/components/LoadingSpinner/LoadingSpinner.module.scss
+++ /dev/null
@@ -1,9 +0,0 @@
-.spinner {
- width: 32px;
- height: 32px;
- border: 3px solid var(--border-color);
- border-top-color: var(--text-color);
- border-radius: 50%;
- animation: spin 0.8s linear infinite;
-}
-@keyframes spin { to { transform: rotate(360deg); } }
diff --git a/frontend/src/components/LoadingSpinner/LoadingSpinner.tsx b/frontend/src/components/LoadingSpinner/LoadingSpinner.tsx
deleted file mode 100644
index 90328dd..0000000
--- a/frontend/src/components/LoadingSpinner/LoadingSpinner.tsx
+++ /dev/null
@@ -1,5 +0,0 @@
-import styles from './LoadingSpinner.module.scss';
-
-export default function LoadingSpinner() {
- return ;
-}
diff --git a/frontend/src/components/Navbar/Navbar.module.scss b/frontend/src/components/Navbar/Navbar.module.scss
deleted file mode 100644
index 21d99d9..0000000
--- a/frontend/src/components/Navbar/Navbar.module.scss
+++ /dev/null
@@ -1,3 +0,0 @@
-.nav { display: flex; align-items: center; gap: 1rem; }
-.link { color: var(--muted-text); }
-.active { color: var(--text-color); font-weight: 600; }
diff --git a/frontend/src/components/Navbar/Navbar.tsx b/frontend/src/components/Navbar/Navbar.tsx
deleted file mode 100644
index ad5dd04..0000000
--- a/frontend/src/components/Navbar/Navbar.tsx
+++ /dev/null
@@ -1,28 +0,0 @@
-import { NavLink } from 'react-router-dom';
-import ThemeToggle from '../ThemeToggle/ThemeToggle';
-import styles from './Navbar.module.scss';
-
-const LINKS = [
- { to: '/', label: 'Home' },
- { to: '/catalog', label: 'Catalog' },
- { to: '/search', label: 'Search' },
- { to: '/login', label: 'Login' },
- { to: '/profile', label: 'Profile' }
-];
-
-export default function Navbar() {
- return (
-
- );
-}
diff --git a/frontend/src/components/Pagination/Pagination.module.scss b/frontend/src/components/Pagination/Pagination.module.scss
deleted file mode 100644
index 626aafb..0000000
--- a/frontend/src/components/Pagination/Pagination.module.scss
+++ /dev/null
@@ -1,16 +0,0 @@
-.pagination {
- display: flex;
- align-items: center;
- gap: 0.75rem;
-
- button {
- padding: 0.375rem 0.75rem;
- border: 1px solid var(--border-color);
- border-radius: 4px;
- background: var(--card-bg);
- color: var(--text-color);
- cursor: pointer;
-
- &:disabled { opacity: 0.5; cursor: not-allowed; }
- }
-}
diff --git a/frontend/src/components/Pagination/Pagination.tsx b/frontend/src/components/Pagination/Pagination.tsx
deleted file mode 100644
index dc84e28..0000000
--- a/frontend/src/components/Pagination/Pagination.tsx
+++ /dev/null
@@ -1,23 +0,0 @@
-import styles from './Pagination.module.scss';
-
-interface PaginationProps {
- page: number;
- totalPages: number;
- onPageChange: (page: number) => void;
-}
-
-export default function Pagination({ page, totalPages, onPageChange }: PaginationProps) {
- return (
-
-
-
- {page} / {totalPages}
-
-
-
- );
-}
diff --git a/frontend/src/components/RatingStars/RatingStars.module.scss b/frontend/src/components/RatingStars/RatingStars.module.scss
deleted file mode 100644
index 16fb8a4..0000000
--- a/frontend/src/components/RatingStars/RatingStars.module.scss
+++ /dev/null
@@ -1,3 +0,0 @@
-.stars { display: inline-flex; }
-.filled { color: #f5b301; }
-.empty { color: var(--border-color); }
diff --git a/frontend/src/components/RatingStars/RatingStars.tsx b/frontend/src/components/RatingStars/RatingStars.tsx
deleted file mode 100644
index 60d2efd..0000000
--- a/frontend/src/components/RatingStars/RatingStars.tsx
+++ /dev/null
@@ -1,19 +0,0 @@
-import styles from './RatingStars.module.scss';
-
-interface RatingStarsProps {
- rating: number;
- max?: number;
-}
-
-export default function RatingStars({ rating, max = 5 }: RatingStarsProps) {
- const stars = Array.from({ length: max }, (_, i) => i < Math.round(rating));
- return (
-
- {stars.map((filled, i) => (
-
- ★
-
- ))}
-
- );
-}
diff --git a/frontend/src/components/Sidebar/Sidebar.module.scss b/frontend/src/components/Sidebar/Sidebar.module.scss
deleted file mode 100644
index 145cde1..0000000
--- a/frontend/src/components/Sidebar/Sidebar.module.scss
+++ /dev/null
@@ -1,19 +0,0 @@
-.sidebar {
- width: 200px;
- padding: 0.75rem;
- border-radius: 8px;
- background: var(--surface);
- backdrop-filter: blur(6px);
-
- ul { list-style: none; }
- li { margin-bottom: 0.5rem; }
-
- button {
- background: none;
- border: none;
- cursor: pointer;
- font-size: 0.9rem;
- padding: 0;
- color: var(--text-color);
- }
-}
diff --git a/frontend/src/components/Sidebar/Sidebar.tsx b/frontend/src/components/Sidebar/Sidebar.tsx
deleted file mode 100644
index f6369db..0000000
--- a/frontend/src/components/Sidebar/Sidebar.tsx
+++ /dev/null
@@ -1,22 +0,0 @@
-import styles from './Sidebar.module.scss';
-
-const GENRES = ['Mystery', 'Historical Fiction', 'Sci-Fi', 'Romance', 'Non-Fiction'];
-
-interface SidebarProps {
- onSelectGenre?: (genre: string) => void;
-}
-
-export default function Sidebar({ onSelectGenre }: SidebarProps) {
- return (
-
- );
-}
diff --git a/frontend/src/components/ThemeToggle/ThemeToggle.module.scss b/frontend/src/components/ThemeToggle/ThemeToggle.module.scss
deleted file mode 100644
index 95c1741..0000000
--- a/frontend/src/components/ThemeToggle/ThemeToggle.module.scss
+++ /dev/null
@@ -1,9 +0,0 @@
-.toggle {
- background: none;
- border: 1px solid var(--border-color);
- border-radius: 6px;
- padding: 0.3rem 0.6rem;
- cursor: pointer;
- font-size: 1rem;
- color: var(--text-color);
-}
diff --git a/frontend/src/components/ThemeToggle/ThemeToggle.tsx b/frontend/src/components/ThemeToggle/ThemeToggle.tsx
deleted file mode 100644
index 1493e66..0000000
--- a/frontend/src/components/ThemeToggle/ThemeToggle.tsx
+++ /dev/null
@@ -1,11 +0,0 @@
-import { useTheme } from '../../context/ThemeContext';
-import styles from './ThemeToggle.module.scss';
-
-export default function ThemeToggle() {
- const { theme, toggleTheme } = useTheme();
- return (
-
- );
-}
diff --git a/frontend/src/models/Book.ts b/frontend/src/models/Book.ts
deleted file mode 100644
index 09c2f4a..0000000
--- a/frontend/src/models/Book.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-export interface Book {
- id: string;
- title: string;
- author: string;
- coverUrl: string;
- description: string;
- genre: string;
- rating: number;
- publishedYear: number;
-}
diff --git a/frontend/src/models/User.ts b/frontend/src/models/User.ts
deleted file mode 100644
index c07d8c9..0000000
--- a/frontend/src/models/User.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-export interface User {
- id: string;
- name: string;
- email: string;
- avatarUrl?: string;
-}
diff --git a/frontend/src/pages/Login/Login.tsx b/frontend/src/pages/Login/Login.tsx
index 7684399..7181b30 100644
--- a/frontend/src/pages/Login/Login.tsx
+++ b/frontend/src/pages/Login/Login.tsx
@@ -1,6 +1,5 @@
import { FormEvent, useState } from 'react';
import { useNavigate } from 'react-router-dom';
-import { login, signup } from '../../services/authService';
import styles from './Login.module.scss';
type Mode = 'signin' | 'signup';
@@ -28,9 +27,9 @@ export default function Login() {
setError('Passwords do not match.');
return;
}
- await signup(name, email, password);
+ // await signup(name, email, password);
} else {
- await login(email, password);
+ // await login(email, password);
}
navigate('/profile');
diff --git a/frontend/src/services/authService.ts b/frontend/src/services/authService.ts
deleted file mode 100644
index cda8057..0000000
--- a/frontend/src/services/authService.ts
+++ /dev/null
@@ -1,21 +0,0 @@
-import { User } from '../models/User';
-
-let currentUser: User | null = null;
-
-export function login(email: string, _password: string): Promise {
- currentUser = { id: 'u1', name: 'Guest User', email };
- return Promise.resolve(currentUser);
-}
-
-export function signup(name: string, email: string, _password: string): Promise {
- currentUser = { id: 'u1', name, email };
- return Promise.resolve(currentUser);
-}
-
-export function logout(): void {
- currentUser = null;
-}
-
-export function getCurrentUser(): User | null {
- return currentUser;
-}
diff --git a/frontend/src/services/bookService.ts b/frontend/src/services/bookService.ts
deleted file mode 100644
index bf24124..0000000
--- a/frontend/src/services/bookService.ts
+++ /dev/null
@@ -1,42 +0,0 @@
-import { Book } from '../models/Book';
-
-const MOCK_BOOKS: Book[] = [
- {
- id: '1',
- title: 'The Silent Library',
- author: 'Amara Osei',
- coverUrl: 'https://placehold.co/200x300',
- description: 'A mystery unfolding inside an ancient library.',
- genre: 'Mystery',
- rating: 4.5,
- publishedYear: 2019
- },
- {
- id: '2',
- title: 'Echoes of Cairo',
- author: 'Youssef Hassan',
- coverUrl: 'https://placehold.co/200x300',
- description: 'A historical drama set in old Cairo.',
- genre: 'Historical Fiction',
- rating: 4.2,
- publishedYear: 2021
- },
- {
- id: '3',
- title: 'Code & Ink',
- author: 'Lina Farouk',
- coverUrl: 'https://placehold.co/200x300',
- description: 'A programmer discovers a hidden manuscript.',
- genre: 'Sci-Fi',
- rating: 4.8,
- publishedYear: 2023
- }
-];
-
-export function getAll(): Promise {
- return Promise.resolve(MOCK_BOOKS);
-}
-
-export function getById(id: string): Promise {
- return Promise.resolve(MOCK_BOOKS.find((b) => b.id === id));
-}
diff --git a/frontend/src/services/cartService.ts b/frontend/src/services/cartService.ts
deleted file mode 100644
index e1da476..0000000
--- a/frontend/src/services/cartService.ts
+++ /dev/null
@@ -1,19 +0,0 @@
-import { Book } from '../models/Book';
-
-let cart: Book[] = [];
-
-export function addToCart(book: Book): void {
- cart.push(book);
-}
-
-export function removeFromCart(bookId: string): void {
- cart = cart.filter((b) => b.id !== bookId);
-}
-
-export function getCart(): Book[] {
- return cart;
-}
-
-export function clearCart(): void {
- cart = [];
-}
diff --git a/frontend/src/services/searchService.ts b/frontend/src/services/searchService.ts
deleted file mode 100644
index 93575fd..0000000
--- a/frontend/src/services/searchService.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-import { Book } from '../models/Book';
-import { getAll } from './bookService';
-
-export async function searchBooks(query: string): Promise {
- const books = await getAll();
- const q = query.trim().toLowerCase();
- if (!q) return books;
- return books.filter(
- (b) =>
- b.title.toLowerCase().includes(q) ||
- b.author.toLowerCase().includes(q) ||
- b.genre.toLowerCase().includes(q)
- );
-}
diff --git a/frontend/tsconfig.tsbuildinfo b/frontend/tsconfig.tsbuildinfo
index cd1f90b..70a4da1 100644
--- a/frontend/tsconfig.tsbuildinfo
+++ b/frontend/tsconfig.tsbuildinfo
@@ -1 +1 @@
-{"root":["./src/App.tsx","./src/main.tsx","./src/vite-env.d.ts","./src/components/BookCard/BookCard.tsx","./src/components/Footer/Footer.tsx","./src/components/Header/Header.tsx","./src/components/Layout/Layout.tsx","./src/components/LoadingSpinner/LoadingSpinner.tsx","./src/components/Navbar/Navbar.tsx","./src/components/Pagination/Pagination.tsx","./src/components/RatingStars/RatingStars.tsx","./src/components/Sidebar/Sidebar.tsx","./src/components/ThemeToggle/ThemeToggle.tsx","./src/context/ThemeContext.tsx","./src/models/Book.ts","./src/models/User.ts","./src/pages/BookDetail/BookDetail.tsx","./src/pages/Catalog/Catalog.tsx","./src/pages/CommingSoon/ComingSoon.tsx","./src/pages/Home/Home.tsx","./src/pages/Login/Login.tsx","./src/pages/NotFound/NotFound.tsx","./src/pages/Profile/Profile.tsx","./src/pages/Search/Search.tsx","./src/services/authService.ts","./src/services/bookService.ts","./src/services/cartService.ts","./src/services/searchService.ts"],"errors":true,"version":"5.9.3"}
\ No newline at end of file
+{"root":["./src/app.tsx","./src/main.tsx","./src/vite-env.d.ts","./src/context/themecontext.tsx","./src/pages/errorpage/errorpage.tsx","./src/pages/login/login.tsx"],"version":"5.9.3"}
\ No newline at end of file