What is this app?
This is a web-based trivia game with a unique cultural twist: players can select a country, and all questions and answers are tailored to that nation. It’s a fun way to compete with friends while learning about customs, traditions, and quirks from around the world. Whether you’re competing with friends or meeting new players, our app offers an engaging and educational experience.
How we built it
- Frontend: Built with Next.js, focusing on a mobile-first design to ensure a seamless experience across devices.
- Backend: Developed using NestJS, leveraging its modular architecture for scalability and maintainability.
- Database: DynamoDB serves as our database, storing user profiles and game data efficiently.
- Real-time communication: Implemented using Socket.IO to provide a dynamic, interactive gaming experience.
- AI Assistance: Amazon Q was a game-changer in our development process. It saved us a significant amount of time by helping with coding tasks, debugging, and optimizing our codebase. By streamlining repetitive and complex tasks, it allowed us to focus on refining the game logic.
- Other Tools: Default user avatars are generated using UI-Avatars.com, adding a personal touch for each player.
Game Flow
- Welcome Screen: Greeted with a vibrant and intuitive interface.
- Sign In or Sign Up: Players can create an account or log in seamlessly.
- Home Screen: Choose to create a new game or join an existing one, and select the country for the cultural theme.
- Waiting Room: Players wait for the game to start while interacting in real-time.
- Game Screen: Compete with others by answering culturally themed questions in real time.
- End Game Screen: View scores, celebrate winners, and reflect on the cultural insights gained.
- Leaderboard: Check global and country-specific rankings for ongoing competition.
Challenges we ran into
- Real-time Functionality: Implementing Socket.IO for smooth and responsive gameplay required extensive debugging and optimization.
- Mobile-First Design: Balancing a rich user experience with performance on mobile devices was challenging.
- Learning Amazon Q: Familiarizing ourselves with Amazon Q and integrating it effectively into our workflow took time.
- DynamoDB Documentation: DynamoDB’s documentation occasionally felt a bit overwhelming. Understanding the best practices for our specific use case required a mix of careful study and some trial and error to get things right.
Accomplishments that we’re proud of
- Seamless integration of real-time gameplay using Socket.IO.
- Delivering a responsive mobile-first design that works flawlessly on both mobile and desktop.
- Leveraging Amazon Q to improve development efficiency and resolve complex challenges.
What we learned
- The power of AI tools like Amazon Q in enhancing productivity and tackling technical hurdles.
- Best practices for mobile-first design and responsive development.
- Efficient use of DynamoDB for a scalable and reliable database solution.
- The importance of cultural sensitivity and accuracy when designing globally relevant content.
What’s next
- Adding more interactive features like mini-games and bonus rounds.
- Enhancing the social aspect with chat and friend-invite features.
- Enhancing generated questions and answers to include more countries and localized traditions.
- Optimizing the app for accessibility to ensure it’s inclusive for all users.
Built With
- amazon-dynamodb
- amazon-q
- cloudinary
- docker
- dynamodb
- jwt
- multer
- nestjs
- nextjs
- node.js
- responsive
- social-login
- socket.io
- tailwind
Log in or sign up for Devpost to join the conversation.