Introduction
Welcome to SteelStance, a full-stack fitness application developed using the framework Next.js with a Flask backend. Users can calculate their BMI on the home page, view other users' personal records for powerlifts (squat, bench, deadlift) and view different workout programs.
The inspiration for SteelStance came from my passion for fitness and technology. I wanted to create a tool that would help individuals track their fitness journey, set goals, and stay motivated. While building this project, I learned a lot about API integration, data management, mobile responsiveness and user experience. I learned the most while facing challenges in complex data handling, API limitations, user authentication/security and creating reusable components.
After signing up/logging in through authentication, users can submit their own personal records and save workout programs, both viewable in their profile page. Users can edit their account information (username, email, height, weight) and delete their profile. If their profile is deleted, their personal records are also deleted.
(The database is pre-seeded with sample data for programs and 5 users with personal records). user1 - user5 (following the same format as demo login)
Features
- Custom-built User Authentication
- User Login/Sign Up
- Edit & Delete Profile
- Viewing Other Personal Records (sortable through various categories)
- Post Personal Records
- Save/Unsave Workout Programs
Front-end Integrations:
- Formik for form management
- useContext for state management
- NextUI library for UI components
Back-end Integrations:
- User authentication via Flask-Login and Flask-Bcrypt for secure session management and password hashing
- Object-relational mapping utilizing SQLAlchemy
- RESTful API with full CRUD + CORS for cross-origin requests
Acknowledgements
Built With
- css
- javascript
- procfile
- python
- shell
Log in or sign up for Devpost to join the conversation.