Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 0 additions & 23 deletions .gitignore

This file was deleted.

100 changes: 0 additions & 100 deletions Readme.md

This file was deleted.

13 changes: 13 additions & 0 deletions frontend-app/.cta.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"projectName": ".",
"mode": "file-router",
"typescript": true,
"tailwind": true,
"packageManager": "npm",
"git": true,
"version": 1,
"framework": "react-cra",
"chosenAddOns": [
"eslint"
]
}
1 change: 1 addition & 0 deletions frontend-app/.env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
VITE_TMDB_API_KEY=YOUR_TMDB_API_KEY
9 changes: 9 additions & 0 deletions frontend-app/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
node_modules
.DS_Store
dist
dist-ssr
*.local
count.txt
.env
.nitro
.tanstack
3 changes: 3 additions & 0 deletions frontend-app/.prettierignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
package-lock.json
pnpm-lock.yaml
yarn.lock
11 changes: 11 additions & 0 deletions frontend-app/.vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"files.watcherExclude": {
"**/routeTree.gen.ts": true
},
"search.exclude": {
"**/routeTree.gen.ts": true
},
"files.readonlyInclude": {
"**/routeTree.gen.ts": true
}
}
51 changes: 51 additions & 0 deletions frontend-app/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
# Movie Search App

A modern React application for searching movies, built with cutting-edge technology stack.

## 🎯 Key Features

- **Movie Search**: Intuitive search by title with instant results
- **Detailed Information**: Complete movie information including poster, description, rating, genres
- **Pagination**: Convenient navigation through search results
- **Responsive Design**: Optimized for all devices
- **Modern UI**: Using shadcn/ui components

## πŸ›  Technology Stack

- **Frontend**: React 18 + TypeScript
- **Routing**: TanStack Router
- **Styling**: Tailwind CSS + shadcn/ui
- **Build Tool**: Vite
- **API**: The Movie Database (TMDB)
- **Testing**: Jest + React Testing Library
- **Architecture**: Feature-Sliced Design (FSD)

## πŸ“ Project Structure

The project is organized following Feature-Sliced Design principles:

```
src/
β”œβ”€β”€ entities/movie/ # Business entities
β”œβ”€β”€ features/ # Feature capabilities
β”‚ β”œβ”€β”€ movie-search/ # Movie search
β”‚ └── pagination/ # Pagination
β”œβ”€β”€ pages/ # Application pages
β”œβ”€β”€ shared/ # Reusable components
└── widgets/ # Composite blocks
```

## πŸš€ Getting Started

```bash
npm install
npm run dev
```

## βœ… Testing

```bash
npm test
```

The application includes unit tests for all key components and functions.
22 changes: 22 additions & 0 deletions frontend-app/components.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"$schema": "https://ui.shadcn.com/schema.json",
"style": "new-york",
"rsc": false,
"tsx": true,
"tailwind": {
"config": "",
"css": "src/styles.css",
"baseColor": "stone",
"cssVariables": true,
"prefix": ""
},
"iconLibrary": "lucide",
"aliases": {
"components": "@/components",
"utils": "@/lib/utils",
"ui": "@/components/ui",
"lib": "@/lib",
"hooks": "@/hooks"
},
"registries": {}
}
5 changes: 5 additions & 0 deletions frontend-app/eslint.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
// @ts-check

import { tanstackConfig } from '@tanstack/eslint-config'

export default [...tanstackConfig]
20 changes: 20 additions & 0 deletions frontend-app/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="icon" href="/favicon.ico" />
<meta name="theme-color" content="#000000" />
<meta
name="description"
content="Web site created using create-tsrouter-app"
/>
<link rel="apple-touch-icon" href="/logo192.png" />
<link rel="manifest" href="/manifest.json" />
<title>Create TanStack App - .</title>
</head>
<body>
<div id="app"></div>
<script type="module" src="/src/main.tsx"></script>
</body>
</html>
Loading