A full-stack social networking app focused on connecting people through shared hobbies and local activities. Users can create profiles, discover nearby people with similar interests, send connection requests, match for activities, chat, share posts, and schedule hobby meetups.
-
User authentication (Register / Login)
-
Create and customize profiles
- Bio
- Profile picture
- Cover image
- Hobbies/interests
-
Discover nearby users using live GPS location
-
Radius-based user filtering
-
Send and manage friend requests
-
Match requests for hobby sessions
-
Real-time style messaging system
-
Social-media style hobby posts
-
Availability scheduling system
-
Mobile-friendly UI
-
Cloudinary image uploads
-
Persistent PostgreSQL database storage
- React Native
- Expo
- TypeScript
- AsyncStorage
- Expo Location
- Spring Boot
- Java 17
- Gradle
- PostgreSQL
- Docker
- Cloudinary
Local-Hobbies/
│
├── apps/
│ ├── api/ # Spring Boot backend
│ └── mobile/ # Expo React Native frontend
│
├── docker-compose.yml
├── start.sh
└── README.mdgit clone https://github.com/YOUR_USERNAME/Local-Hobbies.git
cd Local-HobbiesMake sure Docker is running.
docker compose up -dGo into backend folder:
cd apps/apiRun backend:
./gradlew bootRunBackend runs on:
http://localhost:8080Health check:
http://localhost:8080/healthOpen another terminal:
cd apps/mobile
npm install
npx expo start -cExpo runs on:
http://localhost:8081Create a .env file inside:
apps/mobile/.envAdd:
EXPO_PUBLIC_API_BASE_URL=http://localhost:8080
EXPO_PUBLIC_CLOUDINARY_CLOUD_NAME=YOUR_CLOUD_NAME
EXPO_PUBLIC_CLOUDINARY_UPLOAD_PRESET=YOUR_UPLOAD_PRESETPostgreSQL database is automatically created using Docker.
Default credentials:
POSTGRES_DB=local_hobbies
POSTGRES_USER=postgres
POSTGRES_PASSWORD=postgresPOST /auth/register
POST /auth/loginGET /users/discover
GET /users/nearby
PATCH /users/{id}/location
PATCH /users/{id}/profile-image
PATCH /users/{id}/cover-imagePOST /requests
GET /me/requests
PATCH /requests/{id}POST /messages
GET /messagesPOST /posts
GET /posts
DELETE /posts/{id}- Push notifications
- Real-time chat with WebSockets
- Hobby group creation
- Event scheduling
- Better recommendation algorithm
- Mobile app deployment
- Dark mode
Local Hobbies aims to remove the awkward initial talking stage by helping users instantly connect through shared interests and local activities.
The goal is to build a platform where:
- People make real-life friends
- Users find activity partners nearby
- Communities form around hobbies
- Social media becomes more interactive and local
This project is for educational and portfolio purposes.






