Coder Social home page Coder Social logo

da-stoi / herder Goto Github PK

View Code? Open in Web Editor NEW
5.0 2.0 1.0 305 KB

A roommate searching app that ranks possible roommates by how closely they match the questions you answer.

Home Page: https://herder.stoiber.network

License: GNU General Public License v3.0

JavaScript 97.61% CSS 2.39%
roommate-searching wpi roommatefinder herder

herder's Introduction

Herder

A roommate searching app that ranks possible roommates by how closely they match the questions you answer.

Herder is very much in beta, things will break! When they do, please please please let me know. Contact details can be found on the website.

If you are an incoming or current WPI student, check the Announcement channel on the WPI Class of 2025 Discord server.

How to use

  1. Login with Discord
  2. Go to Profile, and select Edit Profile. Then fill in as many questions as possible and press save changes.
  3. Go to Search, select what kind of roommate you are looking for and click Search.
  4. That's it! ๐Ÿ“ˆ Now you can see the percentage of how closely you match with other people. You can find a person's discord username and digits on their profile card so you can reach out.

Planning to contribute?

Environment Variables

Variable Description
NEXT_PUBLIC_DISCORD_AUTH_URI Discord auth page URI
DISCORD_REDIRECT_URI Oauth2 Redirect
DISCORD_CLIENT_ID Discord oauth2 app client id
DISCORD_CLIENT_SECRET Discord oauth2 app client secret
DATABASE_URL PostgreSQL database connection url

All API requests require a x-access-token header, with the exception of the oauth2 redirect.

Oauth2 Redirect

GET /oauth/redirect

Redirects to auth page after converting oauth2 code to access token.

Query Parameters

Param Description Required
code Oauth2 code true

Match

GET /match

Returns JSON array of matching users with their percent match.

Query Parameters

Param Description Required
grad_year Graduation year true
pronouns Pronouns true

Questions

GET /questions

Returns JSON object of all profile questions.

Profile

GET /user/profile

Returns requesting user's full profile.

Update Profile

POST /user/update-profile

Body should contain all profile questions answered by the user.

Returns updated profile.

Get Residence Halls

GET /halls

Returns JSON array of all residence halls.

Get Rooms

GET /halls/{hall_id}/rooms

Returns JSON array of all rooms in a specified residence hall.

Parameters

Param Description Required
hall_id Residence Hall Id true

Match

GET /roommates/neighbors

Returns JSON array of all users in the same residence hall.


Made with โค๏ธ by Daniel Stoiber
Thank you everyone on the WPI Class of 2025 server!

herder's People

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

muirrum

herder's Issues

Allow selecting multiple pronoun values on Search page?

It'd be nice to be able to see all matches on the Search page irrespective of their pronouns.
The values could be passed like so:
one selection

  • He/Him
  • She/Her
  • They/Them

returns he

multiple selections

  • He/Him
  • She/Her
  • They/Them

returns he,they

and the passed strings could be parsed with a simple value.split(',') and queried individually or with a union? (I don't really know how database stuff works)

Not able to paste in Bio field.

Current behavior: When trying to paste text longer than 230 characters in the Bio field it will simple not let you.
Intended behavior: Cuts off text beyond 230 characters.

Change text in match comparison based on pronouns

When matching with a roommate, currently if they indicate a level of preference for a question, Herder says this is not very/kind of/very important to them. We ask for their pronouns in their profile so this is a perfect place to use that data for slightly nicer grammar.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.