IEEEMDB is a console-based application that allows users to:
- Add and manage users.
- Add and manage movies.
- Track watched movies per user.
- Write and view reviews and ratings.
- Suggest movies based on watched history. This is a simplified version of a personal movie diary and social network.
- Add a new user.
- Add a new movie.
- Show list of users.
- Show list of movies.
- Add a watched movie to a user.
- Show user's watched movies.
- Add a review for a movie by a user.
- Show all reviews.
- Suggest movies based on watched history.
- Fast response time for adding and displaying data.
- User-friendly console interface.
- Scalable design to allow adding more features in the future.
- Response time less than 200 ms
- Service availability 99.9%
- Secure communications via HTTPS
- Error logging
- Prioritize availability over consistency (CAP theorem)
- User: username, email, watchedMovies (relation with Movie)
- Movie: title, genre
- Review: user → movie, text, rating
Relationships:
- A User can watch multiple Movies.
- A User can write multiple Reviews for Movies.
- Each Review belongs to one User and one Movie.
The system consists of three main components:
- User Management: manages users and their watched movies.
- Movie Management: manages movies data.
- Review Management: handles reviews and ratings.
- [Web/Mobile App] --HTTP--> [API Server] --SQL--> [Database]--Redis-->Cache-->storage
- POST /users (register user)
- GET /movies (search movies)
- POST /movies/{id}/reviews (add review)
- Scalability: Using vectors is fine for small data, but for large-scale users/movies, a database is needed.
- Data Consistency: Deleting a movie requires cleaning pointers from User's watched list.
- Performance: Movie suggestions currently use linear search, which can be improved with indexing or maps.
- Open the project in your IDE (Visual Studio, Code::Blocks, etc.).
- Build the project.
- Run the executable.
- Use the menu to add users, movies, reviews, and view suggestions.