PicklePal App
Wireframes
figma
https://www.figma.com/design/J4mKwxV0URjaOAYCcCaals/PicklePal?node-id=0-1&m=dev
DB Diagram
https://dbdiagram.io/d/66a97c8a8b4bb5230ecadc5e
Description
PicklePal is a mobile and web application designed to help pickleball players connect, schedule games, and form groups based on their location. The app features a social feed for users to share updates, achievements, and game highlights.
Stack
- Frontend: HTML, JavaScript, Tailwind CSS
- Backend: Python/Flask
- Database: PostgreSQL
- APIs: Custom API, Google Maps API
Focus
This will be a full-stack application with an even focus on both the front-end UI and the back-end functionality.
Type
Mobile app first project with a desktop implementation in the future.
Goal
The primary goal of PicklePal is to enable pickleball players to easily find partners, schedule games, and connect with others in their area. It aims to foster a sense of community among players by providing a platform to connect, share updates, and organize games.
Users
The target users are pickleball players of all skill levels who want to connect with others in their area. This includes solo players, groups, and teams who wish to schedule and participate in pickleball games.
Data
- Map API Data: Used to determine player locations and nearby pickleball courts.
- Custom API Data: Used to manage user profiles, group formations, courts, messages, and social feed content.
MVP
- Location-Based Matchmaking: Finding nearby players and courts using the Maps API.
- Group Formation: Creating and managing groups.
- Social Feed: Sharing updates, posting to courts, commenting on posts, adding friends.
- Review Feature: Adding reviews for courts.
User Flow
- Registration/Login: Users create an account or log in.
- Profile Setup: Users set up their profile, including location, name, skill level, and home court.
- Finding Courts: Users search for nearby pickleball courts using the Maps API or add their court/details if it does not exist.
- Joining/Creating Groups: Users form or join groups.
- Social Interaction: Users post updates and interact on the home or local court social feed.
Future Goals
- Notifications Giving more notifications to make more use of the groups and friends features. Allow users to select or post times/days that they plan on going that's outside of their typical routine.
- Messaging Allow users to message eachother and implement group messaging as well.
- Machine Learning: Suggesting optimal game times and partners based on user activity.
- Tournament Management: Organizing and managing local tournaments.
- Performance Tracking: Recording and analyzing game performance statistics.
Setup Instructions
Install Python
Install PostgreSQL
create virtual env
clone repo
pip install -r requirements.txt
update secrets values in a .env file
DATABASE_URL=postgresql:///picklepal
SECRET_KEY=your_secret_key
API_KEY=your_google_maps_api_key
createdb picklepal
flask db upgrade
flask run