uploading Media project is a platform designed for media sharing, consisting of a backend server and a (Cross-platform) mobile application along with a web application. The platform enables users to upload images or videos, view a list of uploaded media, and interact with them by liking or unliking.
Users can upload images or videos from their devices to share with others.
All uploaded media are displayed in a list, allowing users to view and interact with them.
Users can like or unlike media items, providing feedback on the content.
The backend server supports Create, Read, Update, and Delete operations to manage media items.
---------------------------------------- Backend Server -----------------------------------------------------
technology --> Node.js
used packages --> multer, express, mongoose, cors, axios
----------------------------------------- Database -------------------------------------------------------
technology --> MongoDB
----------------------------------------- Mobile Applications -------------------------------------------------
technologies --> React Native
used packages --> axios, expo, expo-image-picker, expo-av
front-end libraries --> React Native Paper
----------------------------------------- Website -------------------------------------------------------
technologies --> React Native
used packages --> axios
front-end libraries --> MUI material-ui
images are stored in images folder while videos are stored in videos folder on the server. Each uploaded media file is assigned a unique filename along with other relevant data and stored to the database.
The database schema includes the following fields for each media file:
unique filename assigned to the media file.
Indicates whether users have liked or unliked the post.
Specifies whether the media file is a video or an image.
To run the project locally, follow these steps:
Clone the project repository to your local machine.
Navigate to the backend server directory and install dependencies using "npm install". Start the server using "npm start". Note: This command will launch the server and monitor for any changes to the code. Whenever changes are detected, "nodemon" will automatically restart the server, ensuring that the latest code modifications take effect without manual intervention.
Navigate to the mobile application directory and install dependencies using npm install. Start the app using "npx expo start". Note: After starting the app, a QR code will be displayed in the terminal or command prompt. To run the app on your mobile device: For "Android users": Open the Expo Go app and scan the QR code. For "iOS users": Use the Camera app to scan the QR code. This will prompt you to open the project in the Expo Go app.
Navigate to the website directory and install dependencies using "npm install". Start the website using "npm start"