This Android application is developed for the Aprajita Foundation, aimed at empowering women and children. The app is designed with user-friendly features for both users and administrators, providing access to various sections such as the gallery, events, member information, and donation options.
User
Admin
Dark Mode
- Gallery: Users can seamlessly view, browsing through photos shared by the foundation.
- Razorpay Integration: A secure and easy-to-use payment gateway for donations, with the ability to download and share receipts after successful payments.
- Profile Section:
- Users can contact the foundation via WhatsApp, email, or other methods.
- Share the app's APK with others.
- Sync profile information with Firebase Google login.
- Dark Mode/Light Mode: Toggle between dark and light themes according to user preferences.
- Bottom Navigation: Intuitive navigation for users, making app exploration smooth and easy.
- Admin Dashboard: Admins can manage gallery images, events, and member information:
- Upload, update, and delete gallery images.
- Create, edit, or remove events.
- Manage member profiles.
- Multiple Image Upload: Users can select and upload multiple images to the server in one go.
- Cloudinary Integration: Cloud storage solution for saving images, including error handling for any Cloudinary dependency issues (documented on StackOverflow).
- Server Calls with Retrofit: Smooth network communication handled through the Retrofit library.
- Receipt Management: Admins can convert payment details into table format and generate PDF receipts using the IText library.
- Drawer Layout: A dedicated layout for admins to efficiently manage app content.
- Firebase Google Login: Integrated Google authentication for users, while admins log in using a server-based authentication system.
- Multiple Image Selection: Users and admins can upload multiple images to the server, with asynchronous handling powered by Kotlin coroutines.
- SharedPreferences: Store important user data locally, using JSON strings for object storage.
- Real Path from URI: Implemented functionality for retrieving real file paths to facilitate smooth file uploads.
- Concurrent Data Updates with Interfaces: Interface-based implementation to ensure simultaneous data updates across different app components.
- Download the App: Download APK
- Install the App on your Android device.
- Explore the Features:
- Visit the Profile section to manage your details.
- Browse through the Gallery to see images.
- View the list of Team Members.
- Make a donation through the secure Razorpay gateway.
- Kotlin: For Android development.
- Retrofit: For handling network requests.
- Itext: For converting code to pdf doc
- MongoDB: Used as the primary database.
- Vercel: Backend server is hosted on Vercel.
- Razorpay: Integrated for handling donations.
- XML: Used for building the UI components.
- Cloudinary: Used for uploading images
-
Activities
AdminLoginActivity
- Custom signin using server callsAdminActivity
- For managing drawer layout , and all the fragments
-
Fragments
AddMemberFragment
- Here you can add , delete , update team membersEditMemberFragment
- For updating team members data i.e- profile image, etc.EventAdminFragment
- Here you can add , delete , update events dataEditMemberFragment
- For updating events data i.e- title, image, etc.GalleryFragment
- For uploading multiple images and deleting images from the server.HomeAdminFragment
- Landing page after admin login , shows stats of donations and total members.PaymentsFragment
- Shows donwlaodable table of all the donations received by the organisationRegisterAdminFragment
- To register new adminProfileFragment
- For editing users detail(name ,email, profile)
-
Fragments:
ProfileFragment
: Handles user interactions in the profile section, including navigation, contact options, and donation redirection.HomeFragment
: Shows the automatic slider , members llist and gallery.BaseFragment
: This is the parent fragment whose properties are inherited by various fragments i- showing progress , opening link function , etc.EventsFragment
: Shows the list of events rendered from the server.MemberFragment
: Describes about the members of the organisation.
-
Activities:
PaymentActivity
: Manages the Razorpay payment flow, including payment initiation and handling success or failure callbacks.MainActivity
: Manages the fragment navigation using bottom navigationbar.SigninActivity
LoginActivity
: Handles user login and signup
-
ViewModel:
DataViewModel
: Manages UI-related data for the gallery adn events. It fetches images from the server, handles loading states, and logs any errors.AdminAuthViewModel
: Manages events related admin login , fetchAdmindata, logout ,update etc.
-
Retrofit API:
ApiService
: Interface defining the API endpoints for retrieving, uploading, and deleting images, as well as fetching team members.RegisterAdminApi
: Interface defining the API endpoints for retrieving event details.
-
Networking:
-
RetrofitClient
: Singleton object that initializes Retrofit with the base URL and provides an instance ofServiceApi
andRegisterAdminApi
.and more...
-
-
Clone the repository:
git clone https://github.com/KrishnaTech6/aprajita-foundation.git
-
Open the project in Android Studio.
-
Build the project:
- Ensure you have the latest version of Android Studio.
- Sync Gradle files if prompted.
-
Run the app:
- Connect an Android device or start an emulator.
- Click on the "Run" button in Android Studio.