Pull-request is a collaboration platform that allows users to browse GitHub repositories and connect with the owner to offer assistance on their project.
"Pull-request is like a dating app-except you end up working with your matches instead of sleeping with them." - User
The app only displays projects labeled as 'Help Wanted' to encourage this collaboration.
Click here to see live a demo.
The UI is similar to dating app designs in that the homepage is populated with potential matches that the user interacts with via by swiping. Once the user finds a project they would like to collaborate on they send a message, or "Pull-request", to the owner. This message arrives as a comment on the GitHub repo issue page and contains a custom URL that directs the repo owner to a chat session with our original user in the Pull-request app.
Once the project owner accepts the pull-request, the two users are merged and the journey can begin ❣️
Pull-request utilizes the GitHub API and the ocktokit/rest api client for data. Socket.io is used to create chat sessions and Material-ui is used for design elements.
- @octokit/rest
- @material-ui/core
- @material-ui/icons
- github
- express
- express-session
- mongoose
- node-sass-middleware
- passport
- passport-github
- socket.io
- react-tinder-card
- react-dom
The app is optimized for mobile and desktop devices and is fully responsive in all formats. The interface is designed to be clean and accessible to give users an intuitive experience.
- Light and Dark theme settings
- Message lazy loading
- Change swipe functionality to browse back and forth in stead of removing the card
- Allow code snippets in chat
- User type - Looking for help
- Filter options for language, tools and labels
- Notifications for chats
You'll need to get your own Github token for authentication and, client id & password for the api. .env file structure:
PORT=5555
ENV=development
API_SERVER_URL=http://localhost:5555
API_CLIENT_URL=http://localhost:3000
SESSION_SECRET=...
GITHUB_CLIENT_ID=...
GITHUB_CLIENT_SECRET=...
GITHUB_TOKEN=...
MONGODB_USER=...
MONGODB_PASSWORD=...
cd client && npm install
npm install
npm run dev
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
Please make sure to update tests as appropriate.