Giter VIP home page Giter VIP logo

studybuddy-api's Introduction

Studybuddy API

Studybuddy's RESTful web service using Node, Express, PostgreSQL, Sequelize, Google App Engine and Cloud SQL.

About

Studybuddy is a community of students looking for classmates to study with. Register now and skip the hassle of studying alone, and start studying together.

๐Ÿ‘‡ Check out the web app repo here ๐Ÿ‘‡
https://github.com/kevinangles/studybuddy

Features

  • User registration
    In order to create an account, users must provide their first and last names, a phone number, an FIU email, and a password between 8-32 characters in length with at least one uppercase letter, one lowercase letter, one digit, and one special character.
  • Password encryption
    Passwords are hashed multiple rounds using bcrypt and managed using best practices.
  • User login
    In order to login, users are asked to provide the FIU email and password they used to register. In the future, users will be able to login using their phone number as well.
  • Search for a course by code
    Currently, users are able to search for a course by code (i.e. COP3530). Additional functionality, search by reference and/or search by test (i.e. GRE), will be implemented in the future.
  • Custom domain
    Since .com was taken, it only made sense to buy .coffee.
  • JWT authentication
    Authentication and authorization of the application are handled by jsonwebtoken. Due to some limitations from the current implementation, auth0 and passport are being looked into for refreshing tokens, as well as registering/logging in since FIU uses Google Mail as their email provider.
  • Verify email address
    A verification email is sent to the FIU email provided by the user in order to verify that the user is in fact an FIU student. Nodemailer is used to send the email from our own server, however, this will definitely be changed to an off-the-shelf tool like SendGrid's email API service.
  • Verify phone number
    The purpose of requiring a phone number when registering is to have a means of communication once both users are ready to connect. The phone number must be valid and must not come from a service that provides call forwarding (i.e. Google Voice).
  • Include Account Kit by Facebook as a registration option
    This feature has been placed on hold until user demand grows. The main reason why it hasn't been implemented is because, for now, a valid FIU email address is required when registering.
  • Filter results
    Users are able to filter results by professor or reference number. More filters such as feedback rating will be introduced in the future, as well as the ability to apply multiple filters at once.
  • Sort results
    Users will be able to sort students' names alphabetically in order to find someone they already know. Other ways of sorting results include feedback rating, last time online, among others.

API endpoints

URL Method Data Description Response Codes
/register/ POST {"first_name": "Kevin", "last_name": "Angles", "email": "[email protected]", "password": "P@ssword1", "reference": 81705 } Register a new user 200 - Returns new user's data
/login/ POST {"email": "[email protected]", "password": "P@ssword1" } Log a user in 200 - Returns user's data
/search/:code/ GET Search course by code 200 - Returns array with course objects
/verify/:hash/ PUT Verify a new email address 200 - Returns user object

studybuddy-api's People

Contributors

kevinangles avatar

Stargazers

 avatar

Watchers

 avatar

Forkers

umhatever71kk

studybuddy-api's Issues

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.