MovieLogger is a web application that allows users to track and log movies they've watched, similar to Letterboxd. Users can create an account, add movies to their watchlist, log watched movies with ratings and reviews, and browse their movie history.
- User Authentication: Register and login to save your personal movie data
- Movie Logging: Log movies you've watched with dates, ratings, and reviews
- Watchlist: Keep track of movies you want to watch
- User Profile: View your movie history and ratings
- Movie Search: Find movies to add to your log or watchlist
- Node.js with Express
- SQLite database (using better-sqlite3)
- JWT for authentication
- React with hooks
- React Router for navigation
- Axios for API requests
- CSS for styling
- Node.js (v14 or higher recommended)
- npm or yarn package manager
- Clone the repository
git clone <repository-url>
cd MovieLogger
- Install backend dependencies
cd server
npm install
- Install frontend dependencies
cd ../client
npm install
- Create a
.envfile in the server directory with the following variables:
PORT=3001
JWT_SECRET=your_secret_key
NODE_ENV=development
- Create a
.envfile in the client directory with the following variables:
VITE_API_URL=http://localhost:3001/api
- Start the backend server:
cd server
npm run dev
- Start the frontend development server:
cd ../client
npm run dev
- Open your browser and navigate to
http://localhost:5173(or the port specified by Vite)
- users: User account information
- movies: Movie information including title, year, director, etc.
- movie_logs: Records of watched movies, with ratings and reviews
- watchlist: Movies users want to watch in the future
- Integration with external movie API (TMDB, OMDB) for more comprehensive movie data
- Social features to follow other users and see their movie logs
- Statistics and visualizations for viewing habits
- Mobile application
This project is licensed under the MIT License - see the LICENSE file for details.
- Inspired by Letterboxd and other movie tracking platforms
- Built using modern web technologies and best practices
The application uses SQLite for data storage. To set up your local database:
-
Navigate to the server directory:
cd server -
Install dependencies if you haven't already:
npm install
-
Initialize the database:
node data/init-db.js
This will create a new movielogger.db file with the correct schema. The database file is gitignored to protect user data.
Note: If you need to reinitialize the database, you'll need to manually delete the existing movielogger.db file first.