π See more here: https://filexf.github.io/felix-portfolio/#/applications
Sportify is an innovative web application designed to connect sports enthusiasts. It allows users to create and join sporting events, share their experiences, and find training partners in their area. Sportify is also a Progressive Web App, which means you can have it as a shortcut window on your phone homepage. It's not native but it has a lot of similar features.
- Ruby on Rails 7.1.5 - Main web framework
- PostgreSQL - Relational database
- Devise - User authentication
- Cloudinary - Media management
- Geocoder - Geolocation services
- Hotwire (Turbo & Stimulus) - Dynamic interactions
- Bootstrap 5.2 - CSS framework
- SASS - CSS preprocessor
- Mapbox GL - Interactive mapping
- Importmap Rails - JavaScript asset management
- Docker - Containerization
- Cloudinary - Image storage
- PostgreSQL - Database
- Action Cable - Real-time communication
- Event creation and management
- Participation system
- Event location mapping
- Filtering by sport and location
- Customized user profiles
- Posts and comments
- Like system
- Personalized news feed
- Sports facilities search
- Interactive mapping
- Distance calculation
- Location-based suggestions
- Mobile-first adaptive design
- Smooth navigation
- Performance optimization
- Intuitive user interface
app/
βββ assets/ # Static assets
βββ controllers/ # Business logic
βββ models/ # Data models
βββ views/ # Templates
βββ javascript/ # JS code
βββ services/ # Business services
config/
βββ routes.rb # Application routes
βββ database.yml # DB configuration
db/
βββ schema.rb # Database schema
- Clone the repository
git clone https://github.com/yourusername/sportify.git
cd sportify- Install dependencies
bundle install- Database setup
rails db:create db:migrate db:seed- Environment variables
Create a
.envfile in the project root:
CLOUDINARY_URL=your_cloudinary_url
MAPBOX_API_KEY=your_mapbox_key
- Start the server
rails server- Access the application
Open
http://localhost:3000in your browser
Because we only had 10 days, we didn't have time to make the app fully responsive, so you'll need to be on mobile:
- Open developer tools (F12)
- Click on the "Toggle device toolbar" icon (Ctrl+Shift+M)
- Select Galaxy S20+ from the dropdown menu (We made it to especially match this mobile screen size)