A simple Journal App that allows users to create an account and login to add images and write thoughts, storing all data using Firebase. The app is built with Java and follows the MVVM (Model-View-ViewModel) architectural pattern to ensure clean and maintainable code.
- Add Images: Users can capture or select images from their device and add them to their journal entries.
- Write Thoughts: Users can add text to describe or reflect on the image.
- Firebase Authentication: Users must create an account to use the app. Authentication is handled using Firebase, ensuring secure login and registration.
- Firebase Integration: All journal entries, including images and thoughts, are stored in Firebase for cloud synchronization.
- MVVM Architecture: The app uses the MVVM design pattern to separate the UI from business logic, making the app scalable and easier to maintain.
- Java: Programming language used for Android development.
- Android SDK: Android development tools and libraries.
- Firebase Authentication: Used for user account creation and login, enabling secure user authentication.
- Firebase Database: For real-time storage and synchronization of journal entries, including images and thoughts.
- Firebase Storage: For storing and retrieving images uploaded by users.
- MVVM Architecture: Model-View-ViewModel design pattern for cleaner code structure and separation of concerns.
- Clone the repository:
git clone https://github.com/MaddyRizvi/journal_app
- Open Android Studio and select Open an existing project.
- Navigate to the project directory and open the project folder.
- Go to the Firebase Console.
- Create a new Firebase project.
- Add your app to the Firebase project.
- Download the
google-services.json
file and place it in theapp
directory of your project.
- In Android Studio, open the
build.gradle
files and ensure that the necessary Firebase dependencies are added. - Use Firebase Authentication, Firebase Database, and Firebase Storage for syncing images and data.
- Once Firebase is configured and dependencies are synced, build and run the app on an emulator or device.
- Open the app to start journaling.
- Add a new entry by tapping the "Add" button.
- Choose or capture an image for your journal entry.
- Write your thoughts in the text field provided.
- Save the entry to store it in Firebase. You can view all your past journal entries in the app.
-
Users:
- Each user’s journal entries are stored under their unique user ID.
-
Journal Entries:
- Each entry contains:
imageUrl
: URL of the uploaded image.thoughts
: Text of the user's thoughts.timestamp
: Date and time of the journal entry.
- Each entry contains:
If you'd like to contribute to the Journal App, please follow these steps:
- Fork the repository.
- Create a new branch (
git checkout -b feature-name
). - Commit your changes (
git commit -m 'Add new feature'
). - Push to the branch (
git push origin feature-name
). - Create a pull request with a description of the changes.
This project is for personal use and learning purposes. It is not licensed for commercial use.
- Firebase: For providing powerful backend services like database, authentication, and file storage.
- MVVM: For helping maintain clean and scalable architecture.
- Android SDK: For providing tools to build Android apps.