Inspiration
As a software developer, I really enjoy reading about distributed systems. After reading "Designing Data-Intensive Applications" by Martin Kleppmann, I realized that distributed systems are incredibly complex and require hands-on experience to truly understand their intricacies. The book provided excellent theoretical knowledge, but I felt there was a gap in practical application. This led to the idea of creating a platform where developers could:
- Practice building distributed systems in a simulated environment
- Get hands-on experience with real-world system design challenges
- Receive immediate feedback on their architectural decisions
- Learn from detailed assessments and best practices
- Build confidence in designing scalable and resilient systems
What it does
Distributed Design provides a comprehensive platform for developers to:
- Practice System Design: Users can work on carefully curated system design problems that simulate real-world scenarios
- Interactive Learning: Each problem comes with:
- Detailed requirements and constraints
- Step-by-step guidance
- Real-time feedback
- Performance metrics
- Scalability considerations
- Assessment System:
- Automated evaluation of design decisions
- Detailed feedback on architectural choices
- Performance analysis
- Scalability assessment
- Best practices recommendations
- Progress Tracking:
- Track solved problems
- Monitor improvement over time
- Build a portfolio of system designs
How we built it
The platform was built using a modern tech stack with a focus on scalability and maintainability:
Frontend Development:
- Next.js for server-side rendering and optimal performance
- React for building interactive user interfaces
- TailwindCSS for responsive and modern design
- Radix UI and Shadcn UI for accessible components
Backend Architecture:
- tRPC for type-safe API development
- Prisma ORM for database operations
- NextAuth.js for secure authentication
- Perplexity API (sonar-deep-research) for intelligent assessment
Database Design:
- PostgreSQL for reliable data storage
- Prisma for type-safe database operations
- Efficient schema design for user data and problem tracking
Challenges we ran into
Technical Challenges:
- Building the canvas tab
- implementing real-time voice transcription
- Ensuring type safety across the full stack
- Optimizing database queries for performance
Design Challenges:
- Creating an intuitive user interface for complex system design problems
- Balancing detailed feedback with user experience
- Ensuring accessibility across all features
- Maintaining consistency in design patterns
Accomplishments that we're proud of
Technical Achievements:
- Successfully integrated tRPC for end-to-end type safety
- Built a robust assessment system using Perplexity(sonar-deep-research) API
- Implemented real-time feedback mechanisms
- Created a scalable database architecture
User Experience:
- Developed an intuitive and responsive interface(especially canvas)
- Created comprehensive problem templates
- Implemented detailed progress tracking
- Built an efficient feedback system
Project Management:
- Maintained consistent code quality
- Established clear documentation
- Created a maintainable codebase
What we learned
Technical Insights:
- Advanced usage of tRPC for type-safe APIs
- Integration patterns for Sonar(sonar-deep-research) API
- Best practices for distributed system design
- Performance optimization techniques
Development Practices:
- Importance of type safety in full-stack development
- Effective state management strategies
- Database optimization techniques
- API design best practices
What's next for DistributedDesign
Short-term Goals:
- Add more system design problems
- Implement collaborative problem-solving features
- Enhance the assessment system
- Add more detailed feedback mechanisms
Medium-term Goals:
- Add system design competitions
- Implement a community forum
- Create a learning path system
Long-term Vision:
- Build a comprehensive system design learning platform
- Create certification programs
- Develop enterprise solutions
- Establish partnerships with tech companies
Built With
- next-auth
- nextjs
- perplexity
- prisma
- react
- tailwindcss
- trpc
- typescript

Log in or sign up for Devpost to join the conversation.