1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
|
# Lumière
Lumière is a personal cinema diary and film catalog application. Built with FastAPI and SQLAlchemy, it allows you to track movies you've watched, manage a queue of films to watch, and maintain a "deserted" list of films you no longer intend to see.
## Features
- **Personal Diary:** Keep a detailed record of movies you've watched, including dates, notes, and ratings.
- **Film Shelves:** Organise films into three distinct categories:
- **Diary:** Films you have watched.
- **Queue:** Films you intend to watch.
- **Abandoned:** Films you have decided not to watch.
- **TMDB Integration:** Seamlessly import movie data from The Movie Database (TMDB) to populate your collection.
- **Statistics:** Track your viewing habits and film statistics.
- **Responsive Design:** A cinematic, dark-themed interface optimized for both desktop and mobile.
## Tech Stack
- **Backend:** [FastAPI](https://fastapi.tiangolo.com/) (Python)
- **Database:** [SQLite](https://www.sqlite.org/) with [SQLAlchemy](https://www.sqlalchemy.org/) ORM
- **Frontend:** Jinja2 templates, CSS (Modern CSS Variables), and Vanilla JavaScript
- **Data Source:** [The Movie Database (TMDB) API](https://www.themoviedb.org/documentation/api)
## Getting Started
### Prerequisites
- Python 3.10+
- A TMDB API Key
### Installation
1. **Clone the repository:**
```bash
git clone <your-repo-url>
cd lumiere
```
2. **Create a virtual environment:**
```bash
python -m venv .venv
source .venv/bin/activate # On Windows use: .venv\Scripts\activate
```
3. **Install dependencies:**
```bash
pip install -r requirements.txt
```
4. **Set up environment variables:**
Create a `.env` file in the root directory and add your TMDB API key:
```env
TMDB_API_KEY=your_api_key_here
```
5. **Run the application:**
```bash
uvicorn main:app --reload
```
The application will be available at `http://127.0.0.1:8000`.
## Project Structure
- `main.py`: Application entry point and FastAPI configuration.
- `models.py`: SQLAlchemy database models.
- `database.py`: Database connection and initialization.
- `routers/`: API route handlers (films, imports, stats, tmdb).
- `services/`: Business logic and external API integrations (TMDB).
- `templates/`: Jinja2 HTML templates.
- `static/`: Static assets (CSS, JS, images).
- `lumiere.db`: SQLite database file.
## License
[Specify License, e.g., MIT]
|