DevConnect is a social collaboration platform for developers where they can connect, share posts, build projects, and find collaborators easily.
- ✅ User registration & profile management
- ✅ Create, edit, and delete Posts and Projects
- ✅ Like, share, and comment on posts
- ✅ Tag-based project & post discovery
- ✅ Follow other developers
- ✅ Intelligent recommendations:
- Suggested projects
- Suggested people to follow
- Suggested posts based on tags & interactions
- ✅ Upload and store profile pictures and media files
- ✅ Hybrid database system:
- ✅ MongoDB for storing posts, users, projects, comments
- ✅ Neo4j for social graph relationships and recommendations
- ✅ Azure Blob Storage for storing media (profile pictures, project assets)
| Layer | Technology |
|---|---|
| Frontend | React |
| Backend | Spring Boot (Java) |
| Database | MongoDB (Primary data storage) |
| Graph Database | Neo4j (Social graph & recommendations) |
| Object Storage | Azure Blob Storage (Profile pictures, media files) |
| API Design | RESTful endpoints |
-
MongoDB
- Stores persistent data:
User,Post,Project,Commentdocuments- Likes, Shares stored in post document fields
- Stores persistent data:
-
Neo4j
- Models relationships for recommendations:
- Users ↔ Users (Follow)
- Users ↔ Tags (Interests)
- Posts ↔ Tags (Discovery)
- Projects ↔ Tags (Discovery)
- Models relationships for recommendations:
-
Azure Blob Storage
- Stores user profile pictures and project assets securely in cloud storage
- Efficient serving of media files
-
ElasticSearch (Future)
- Full-text search of projects, posts, and users.
- Post is saved in MongoDB.
- Post tags are synced to Neo4j:
PostNode→TAGGED_WITH→TagNode
- Profile picture is uploaded from frontend.
- Backend uploads file to Azure Blob Storage.
- URL to the blob is saved in MongoDB under user document.
- Like count + userId updated in MongoDB Post document.
UserNode -[:LIKED]-> PostNoderelationship created in Neo4j.
- Configure
application.properties
# Server port
server.port=8000
# JWT Secret (env var fallback or hardcoded)
JWT_SECRET_BASE64_KEY=
# Azure Storage connection string
azure.storage.connection-string=YOUR_ACTUAL_CONNECTION_STRING
# Application name
spring.application.name=jujutsu
# OAuth2 Configuration
spring.security.oauth2.client.registration.google.client-id=48755-dmheoup4s98e.apps.googleusercontent.com
spring.security.oauth2.client.registration.google.client-secret=GOCDDPdnk
spring.security.oauth2.client.registration.google.scope=profile,email
spring.security.oauth2.client.registration.google.redirect-uri=http://localhost:8080/login/oauth2/code/google
spring.security.oauth2.client.registration.github.client-id=O84Hq
spring.security.oauth2.client.registration.github.client-secret=18da367461c4
spring.security.oauth2.client.registration.github.scope=read:user,user:email
spring.security.oauth2.client.registration.github.redirect-uri=http://localhost:8080/login/oauth2/code/github
spring.security.oauth2.client.provider.github.authorization-uri=https://github.com/login/oauth/authorize
spring.security.oauth2.client.provider.github.token-uri=https://github.com/login/oauth/access_token
spring.security.oauth2.client.provider.github.user-info-uri=https://api.github.com/user
# MongoDB Configuration
spring.data.mongodb.uri=YOUR_ACTUAL_MONGO_URI
spring.data.mongodb.auto-index-creation=true
spring.data.mongodb.database=jujutsudb
spring.data.neo4j.database=DB_NAME
spring.neo4j.uri=neo4j_URI
spring.neo4j.authentication.password=NEO4J_PASS
spring.neo4j.authentication.username=NEO4j_USER
-
Install dependencies:
mvn clean install
-
Run backend:
mvn spring-boot:run
-
Connect React frontend to the backend API.