CloudIn is a full-stack application designed to let users upload, view, and manage images in the cloud. It features a Spring Boot backend and an Expo (React Native) frontend.
- ✨ Introduction
- 🚀 Get Started
- 🔐 Environment Variables
- 📂 Project Structure
- 🛠️ Technologies Used
- 🔗 Live Project
CloudIn is a cloud-based image storing platform that allows users to:
- Upload and delete images
- View images in a gallery
- Persist image data securely using MongoDB and Cloudinary
It is composed of:
- A Spring Boot backend for image and user API
- An Expo React Native frontend for mobile and web interface
-
Clone the repo:
git clone https://github.com/your-username/cloud_in.git cd cloud_in/cloud_in_backend -
Install dependencies and run:
-
Using Maven:
./mvnw spring-boot:run
-
Or via your IDE (IntelliJ/VSCode): Run
CloudInBackendApplication.java
-
-
Navigate to frontend directory:
cd cloud_in/cloud_in_frontend -
Install dependencies:
npm install
-
Set up your environment variables (see below)
-
Start the app:
npx expo start
Place in
cloud_in_frontend/.env
EXPO_PUBLIC_CLERK_PUBLISHABLE_KEY=
EXPO_PUBLIC_API_BASE_URL=
EXPO_PUBLIC_API_MEDIA_URL=
EXPO_PUBLIC_MAX_UPLOADS=Place in
cloud_in_backend/src/main/resources/application.properties
spring.application.name=
spring.data.mongodb.uri=
server.address=
server.port=
spring.servlet.multipart.max-file-size=
spring.servlet.multipart.max-request-size=.env and .gitignore to keep them secure.
cloud_in/
│
├── cloud_in_backend/ # Spring Boot backend
│ └── src/main/java/... # Controllers, Models, Repos
│
├── cloud_in_frontend/ # Expo React Native frontend
│ └── app/ # UI and screens
│
├── .gitignore
└── README.md
- Frontend: Expo + React Native + NativeWind + React push Notification
- Backend: Spring Boot + MongoDB + Cloudinary
- Auth: Clerk.dev
- Database: MongoDB Atlas
- Image Hosting: Cloudinary
https://drive.google.com/drive/folders/15RdvFFPdvnVCiRFUjsaIUZptgxrxjvEB?usp=sharing
