π User Management System
π Inspiration
The inspiration for this project came from the desire to code and put our knowledge to use for the betterment of society. Given that school has yet to start and that we had time to spare, H4G felt like a timely opportunity for us to put our knowledge to meaningful use. Since Muhammadiyah Welfare Home (MWH) is dedicated to providing care and support for boys residing on its campus, fostering a nurturing environment to help them thrive, we felt that working on their prompt was the best way forward!
π₯ What It Does
This React-based User Management System allows admins to:
β
Authenticate users using Firebase Authentication
β
Manage user roles (Admin, Regular User)
β
Suspend users without deleting their accounts
β
Store and retrieve user data in Firestore
β
Provide a seamless and real-time experience using Firebaseβs real-time database updates
π οΈ How We Built It
We used the following technologies to build this system:
- Frontend: React
- Authentication: Firebase Authentication (Email/Password-based login)
- Database: Firestore for a clean and responsive design
- Cloud Services: Firebase for hosting and backend integration
The project follows a component-based architecture in React, ensuring modularity and reusability. Firebase Authentication handles secure user login/logout, while Firestore acts as the database for storing user information and managing permissions dynamically.
π§ Challenges We Ran Into
Building this system came with its fair share of challenges:
- User Suspension Mechanism: Finding an effective way to suspend users required a combination of Firestore role management and Firebase Authentication rules.
- Real-Time Updates: Ensuring that user status changes (such as suspension) reflect immediately in the UI without needing a manual refresh.
- Security & Role-Based Access: Implementing secure authentication flows while preventing unauthorised access to admin functionalities.
- Firestore Data Structure: Designing an efficient and scalable Firestore schema for managing users efficiently.
π Accomplishments That We're Proud Of
Despite the challenges, we successfully:
β
Implemented a robust user authentication system
β
Created a role-based access control system for admin and regular users
β
Developed a user suspension feature without affecting stored data
β
Integrated real-time UI updates with Firebase Firestore
β
Built a scalable and responsive UI for a seamless user experience
π What We Learned
This project taught us several valuable lessons:
- Firebase Authentication & Firestore Integration: Deep understanding of how Firebase handles user authentication and real-time database interactions.
- Optimising Firestore Queries: Structuring data efficiently to minimise read/write operations and improve performance.
- React Environment and Javascript: Better understanding on how to use React and coding in Javascript to produce the web application.
π Next Steps
Moving forward, we plan to enhance the system by:
- Implementing Two-Factor Authentication (2FA) for extra security
- Enhancing the UI with better accessibility and design improvements
This project was an incredible learning experience, and weβre excited about its future improvements! π―
Built With
- css
- firebaseauth
- firestore
- html
- javascript
- react
Log in or sign up for Devpost to join the conversation.