Team size: 3
Duration: 12 months / part time
Main stack: Laravel + NuxtJS + Flutter for android + WPF for windows
Scale (users / data / requests): Medium-scale production system with real users
What problem did it solve? Solved the problem of connecting users through a classified ads platform for listing, discovering, and managing advertisements
What did I actually do? (not the team)
- Designed and implemented the full-stack web architecture
- Built backend APIs and data models using Laravel
- Developed the web frontend using Nuxt for listing, search, and user interactions
- Implemented authentication, authorization, and validation flows
- Integrated frontend and backend for end-to-end web functionality
Hard parts / challenges:
- Designing dynamic, category-based data models and form generation for different listing types
- Ensuring correct validation and data integrity across flexible, user-defined inputs
- Maintaining consistency between frontend state and backend logic under real user interactions
Biggest technical decision I made: Established a clean, layered architecture across both backend and frontend to keep complex domain logic independent from UI and ensure long-term extensibility
Result / impact (even rough): Completed a production-ready system prepared for launch, with deployment postponed for business-related reasons
Internal complexity:
- Time-based and asynchronous processing handled through background queue jobs (e.g., listing promotion)
- Multiple listing categories with category-specific dynamic fields
- Dynamic form generation and validation logic shared between frontend and backend
- Complex data relationships between users, listings, categories, and metadata
- Role-based access control and ownership rules for user-generated content
- Time-based listing promotion handled via background queue jobs
- Synchronization between frontend state and backend validation for dynamic inputs
- Security-sensitive validation across all listing and user actions
- Clean, layered architecture applied consistently across backend and frontend