
## Project Overview
As a full-stack developer at BNN Indonesia, I built the BNN Run 2023 registration portal while still in my fifth semester at the [[about#Education|University of Indonesia]]. Despite limited prior JavaScript experience (having primarily worked with Java Springboot and Django), I transformed this opportunity into a comprehensive learning journey.
## Technical Implementation

**Frontend:** Developed responsive interfaces using NextJS Pages Router and Tailwind CSS, creating an intuitive user experience based on Figma prototypes.
**Backend:** Built a robust API infrastructure with NestJS and Sequelize ORM to manage PostgreSQL database operations deployed on Digital Ocean.
**Key Integrations:**
- Implemented Midtrans payment gateway to process various payment methods securely
- Developed an automated mailing system using Brevo for sending registration confirmations, invoices, and event updates
## Challenges & Growth

The project pushed me beyond my comfort zone, requiring rapid mastery of new frameworks and technologies. Integrating payment systems and ensuring secure transactions demanded precision and careful implementation.
Every solved problem strengthened my technical capabilities and reinforced my adaptability. The satisfaction of seeing users successfully register through my platform connected my technical work to BNN's meaningful mission.
## Key Takeaways
This experience proved my ability to overcome technical challenges outside my comfort zone. It demonstrated the importance of seizing growth opportunities and embracing continuous learning in web development. Most importantly, I learned that each project, regardless of its complexity, offers valuable lessons that shape professional growth.
---
<div style="border:1px solid #EEE; background:transparent; padding:20px; border-radius:5px; text-align:center;"> <h3>Never Miss an Update</h3> <p>Get my latest thoughts on digital knowledge management and personal growth delivered directly to your inbox.</p> <a href="https://setasena.substack.com" style="display:inline-block; background:#3D85C6; color:white; padding:10px 20px; text-decoration:none; border-radius:4px; font-weight:bold;">Subscribe</a> </div>