(No sensitive data shared) My responsibilities included developing the User dashboard interface to ensure it was intuitive and provided a seamless experience. I worked on implementing features such as idea submission, status tracking, feedback display, seminar registration, and chat functionality. To maintain consistency with the Admin dashboard, I contributed to creating a centralized component library using React and ShadCN, which streamlined development across both interfaces. Additionally, I focused on optimizing the integration of the shared database to enable real-time synchronization between the User and Admin dashboards.
The User dashboard initially faced challenges with inconsistent UI elements and duplicated components, which slowed down development and increased maintenance efforts. The idea submission and tracking processes needed refinement to ensure they were user-friendly and engaging. Synchronizing the shared database between development, staging, and production environments proved challenging, especially when hosting a fake database. Manual synchronization for DEV/STG environments often caused errors and created inconsistencies during testing as changes in one repo had to also affect the other, as it would in the final product (we were using mock data as BE was behind in development and we did not want to slow down the FE).
I collaborated with the team to develop and maintain a shared component library, reducing duplication and ensuring design consistency across the Admin and User dashboards. The idea submission flow was restructured with a step-by-step interface, making it clearer and easier for users to propose ideas, track their status, and view feedback from admins. For database synchronization, I helped implement json-server for local development, enabling real-time data manipulation and allowing us to simulate the final BE implementation. To address challenges in staging and development environments, we set up a static AWS Lambda function to host the database on the cloud. While this setup required manual updates for write operations, it ensured the data was consistently accessible and up-to-date across all environments.