Discover, join, and host tailored communities and events with a swipe, connecting you with like-minded individuals and enabling easy filtering, finding, and hosting of Pods.
This app facilitates the creation and exploration of events, termed pods, tailored to users' preferences. Users can generate preference tags by providing prompts to ChatGPT, receiving tags aligned with their interests.
Key functionalities of each core page are as follows:
Splash Page (`/`)
- Double tap the Orca icon for a surprise.
Login and Signup Pages (`/login`, `/signup`)
- Users can sign up with credentials and proceed to log in.
Filtering Pods (`/home`)
- Users describe preferred activities or interests in the prompt box, receive suggested tags, and add them to their profile. These tags are used for filtering pods.
Discover Pods (`/findPods`)
- Main browsing page for pod cards, displaying titles, locations, dates, descriptions, and related tags. Users can adjust tags, location proximity, or create their own pods.
Host Pods (`/createPods`)
- Users view and create pods, providing required details such as pod name, image, description, date, time, tags, and location. Suggested tags align with the app's community vision.
Your Profile (`/profile`)
- Users can access their profile, view/edit details, and see their profile photo and username. Fields are optional.
Database
- MongoDB for everything
- Firebase for image uploads
- Realtime Database for Chat feature
Artificial Intelligence
- ChatGPT-3.5
- GPT-4
What do I install from npm?
npm install bcrypt
npm install firebase-admin
npm install openai -- save
npm i luxon
npm install dotenv
How should my .env file consist of?
In your local .env, make sure you have the following fields filled in with your own keys: Note: OrcaSwipe is set to port 3000
PORT
MONGODB_USER
MONGODB_PASSWORD
MONGODB_CLUSTER
MONGODB_DATABASE
MONGODB_SESSION_SECRET
NODE_SESSION_SECRET
HASHED_PASSWORD
EMAIL
EMAIL_APP_PASSWORD
HOST_URL
IMAGE_FIREBASE_JSON
OPENAI_API_KEY
OPENAI_ORG
// for firebase configuration
TYPE
PROJECT_ID
PRIVATE_KEY_ID
PRIVATE_KEY
CLIENT_EMAIL
CLIENT_ID
AUTH_URI
TOKEN_URI
AUTH_PROVIDER_X509_CERT_URL
CLIENT_X509_CERT_URL
UNIVERSE_DOMAIN
How do I use the Firebase Storage?
- Go to Project Overview
- Go to Project Settings
- Go to Service Accounts
- Go to Firebase Admin SDK
- Choose Node.js
- Finally, generate new private key
This will generate a .json
file with the keys that you need to add to in the firebase fields in your .env
This does NOT go into you public repo.