An intuitive soccer drop-in app that lets players join and track local games easily and securely. Admins can efficiently manage and organize events for a seamless experience. Payments are securely processed using Stripe, and players can be added to waitlists to automatically join events when spots open up. Players can also request a refund (minus a processing fee) if they wish to cancel.
-
Players:
- Join local soccer games, view upcoming events, and track your game participation.
- Add yourself to waitlists for events, and join automatically when a spot opens up.
- Request refunds (minus a processing fee) for event cancellations.
-
Admins:
- Efficiently organize and manage soccer events, view and track participants, and manage event cancellations.
- Players are notified by email when an event is created
-
Payments:
- Secure payments using Stripe for charging players and processing refunds.
- Payment intents are created and managed in the backend.
-
Secure Authentication:
- Ensure only authorized users can access sensitive information using Firebase for authentication.
-
Frontend:
- React
- Stripe for payments
- Tailwind CSS
-
Backend:
- Node.js
- Express
- Stripe for payment intents, managing payments, charging users, and issuing refunds.
- Firebase for authentication and real-time database.
-
Clone the repository:
git clone https://github.com/yourusername/soccer-drop-in.git cd soccer-drop-in
-
Install dependencies:
npm install
-
Navigate to the backend directory:
cd firebase-admin-server
-
Install dependencies:
npm install
- Create a
.env
file in the root of theFrontend
directory and add the following variables:REACT_APP_STRIPE_PUBLIC_KEY=<your-stripe-public-key> GOOGLE_MAPS_API_KEY=<your-google-maps-api-key> FIREBASE_API_KEY=<your-firebase-api-key> FIREBASE_MESSAGING_SENDER_ID=<your-firebase-messaging-sender-id> FIREBASE_APP_ID=<your-firebase-app-id> FIREBASE_MEASUREMENT_ID=<your-firebase-measurement-id>
-
Create a
.env
file in the root of thefirebase-admin-server
directory and add the following variable:stripe_secret_key=<your-stripe-secret-key>
-
Ensure you have a
serviceAccountKey.json
file to set admin permissions for users.
- To start the frontend app, run:
The frontend will be available at http://localhost:3000 (or another port if specified).
npm start
- To start the backend server, run:
The backend API will now be running locally (or specify the port you are using).
node paymentServer.js
- Sign up/sign in via Firebase Authentication
- Browse available games
- Join games
- Add yourself to waitlists
- Request refunds for cancellations
- Log in to the admin panel
- Create new events
- Track player participation
- Manage payments
- Cancel games and issue refunds
Created by Yousef Ouda Email: ouda.yousef@gmail.com GitHub: https://github.com/youda97