This is a simple IMDb-like mobile application built using React Native for the front end and Express for the backend. The application allows users to browse a list of movies, search for movies, and view details about each movie. It also includes user authentication and authorization using JWT tokens, bcrypt for password hashing, and input validation using Joi. MongoDB is used to store data with separate models for movies and users.
-
Authentication and Authorization:
- User registration and login functionality.
- JWT token-based authentication for secure API access.
- Passwords are securely hashed using bcrypt.
-
Movie Listing:
- Main page displays a list of movies.
- Users can click on a movie to view detailed information.
-
Search Functionality:
- Users can search for movies using the search screen.
-
Drawer Navigation:
- Drawer navigation provides easy access to different sections of the application.
- Logout option at the bottom of the drawer for user convenience.
react-native
react-navigation
for navigationasync-storage
for storing JWT tokens securelyreact-native-responsive-screen
for responsive design
express
for serverjsonwebtoken
for JWT token generation and verificationbcrypt
for password hashingjoi
for input validationmongoose
for MongoDB integration
-
Screens:
Home
: Displays a list of movies.Movie
: Displays detailed information about a selected movie.SearchScreen
: Allows users to search for movies.Person
: Information about a person (future enhancement).Register
: User registration screen.Login
: User login screen.Profile
: User profile screen (future enhancement).
-
Navigation:
Navigation
: Sets up the navigation structure usingreact-navigation
.
-
Backend:
- Express server with routes for authentication and movie-related operations.
- MongoDB models for movies and users.
-
Middleware:
authMiddleware
: Middleware for JWT token verification.errorHandler
: Middleware for handling errors.logger
: Middleware for logging requests.
- Clone the repository.
- Install dependencies:
npm install