A fully functional Notes App built with Jetpack Compose following the Clean Architecture principles for Android, hosted on Render. The app integrates a Node.js backend and utilizes MongoDB as its database.
- Create, Read, Update, and Delete (CRUD) operations for notes.
- Prioritize notes with options like High, Medium, or Low.
- Seamless user experience with a modern UI designed using Jetpack Compose.
- Secure and scalable backend hosted on Render.
- Real-time data synchronization with MongoDB.
- Jetpack Compose: Declarative UI toolkit for building native Android UIs.
- Clean Architecture: Ensures maintainability and scalability by dividing the code into clear layers.
- Presentation Layer: Jetpack Compose and ViewModels.
- Domain Layer: Use cases and business logic.
- Data Layer: Repositories and Room Database.
- Node.js: JavaScript runtime for building fast and scalable server-side applications.
- Express.js: Web framework for handling routes and APIs.
- MongoDB: NoSQL database for efficient and flexible data storage.
- Render: Hosting platform for the backend, providing a public API endpoint accessible from the Android app.
- Android Studio installed on your machine.
- Node.js and npm installed.
- MongoDB instance (cloud-hosted on MongoDB Atlas or local setup).
- A Render account for hosting the backend.
-
Clone the repository:
git clone https://github.com/your-repo/notes-app-backend.git cd notes-app-backend
-
Install dependencies:
npm install
-
Create a
.env
file for environment variables:PORT=3000 MONGO_URI=mongodb+srv://<username>:<password>@cluster.mongodb.net/<dbname>?retryWrites=true&w=majority
-
Start the server:
npm start
-
Deploy to Render:
- Link your repository to Render.
- Set up environment variables (
PORT
,MONGO_URI
) in Render's settings.
-
Clone the repository:
git clone https://github.com/your-repo/notes-app-frontend.git
-
Open the project in Android Studio.
-
Replace
YOUR_BASE_URL
ingradle.properties
with your Render base URL:BASE_URL=https://your-backend-url.onrender.com
-
Build and run the app on an Android device or emulator.
https://your-backend-url.onrender.com
- GET /notes: Fetch all notes.
- POST /save-notes: Create a new note.
- GET /save-dummy-note: Save a dummy note for testing.
Contributions are welcome! Feel free to submit issues or pull requests to enhance the app.