Inspiration
Working out can sometimes feel repetitive and it can be easy to lack motivation. With our app, Gainesville, we set out to make weightlifting a more interactive and competitive experience where users can challenge themselves and others.
What it does
GainsVille is an interactive web app that we have designed to facilitate a gym community, where gym goers can create and participate in various workout challenges. Our app allows users to post personal weightlifting challenges, send in attempts to others’ challenges, and engage with the gym community.
How we built it
Built using Next.js for a smooth, responsive front-end and a Node.js/Express backend connected to a MongoDB database, GainsVille ensures a seamless user experience. The app dynamically fetches and displays challenges using React components, creating an intuitive interface for users to explore and participate in challenges. Users can submit their challenges through a simple form, which updates the database in real time.
Challenges we ran into
One of the biggest challenges we faced was the limitation of our database storage. Initially, we planned to allow users to upload videos of their challenges, but since we were using a free-tier database, we didn’t have enough storage capacity to support large video files. As a workaround, we considered integrating third-party cloud storage solutions like Firebase or AWS S3, but due to time constraints, we decided to focus on perfecting the core challenge submission and display features first. Additionally, we encountered issues with backend connectivity when fetching challenge data, but after debugging our API calls and optimizing state management, we ensured smooth data retrieval.
Accomplishments that we're proud of
We’re incredibly proud of GainsVille because it fosters a sense of community in fitness, transforming individual workouts into a shared experience.
What we learned
Throughout this project, we gained valuable experience in full-stack development and state management in React. We deepened our understanding of handling asynchronous API requests and debugging backend issues, especially when dealing with CORS errors and database connectivity problems. Additionally, we learned the importance of optimizing database storage and how third-party cloud storage solutions could enhance scalability. Most importantly, we recognized the significance of prioritization in development—focusing on core functionality before expanding into additional features.
What's next for GainsVille
In the future, we aim to introduce features like progress tracking, leaderboards, and social sharing to enhance user engagement. By leveraging AI-driven insights, we hope to provide personalized challenge recommendations based on user preferences and performance history.
Log in or sign up for Devpost to join the conversation.