Coder Social home page Coder Social logo

backend's Introduction

MyFIU (Backend)

Your student university portal, made richer and smarter

MyFIU-Revamped is a full-stack web platform that allows university students to explore their student portal with a richer and more intuitive platform. In a way, MyFIU-Revamped becomes your personal college path assistant. It is composed of a decoupled backend JSON API and a front-end web application.

In our case, we created a demonstration of MyFIU-Revamped interfacing with our university's MyFIU student portal, but our platform can interface with any university platform in practice. It works by scraping a student's dataset from their portal upon giving us their student portal credentials.

Statistical Analysis

Our backend utilizes data gathered from transcripts and online grade distributions present on your student portal. Using this, we determine how well you will do in specific courses and on your major as a whole. Currently, our statistical inference only works for Computer Science majors (because of time constraints, but the applications are endless).

Under the hood, our backend passes a JSON file of the student's academic data to the analysis engine that does our predictions. A sample of the passed data looks like this:

[{
    id: "CHM 1045",
    name: "Chemistry 1",
    semesterLabel: "Fall Semester 2015",
    grade: "A",
    units: "3.00"
}, {...}]

The analysis engine returns this, which the backend API shuttles forward to the front-end:

{
    "expectedGpa": "3.0", 
    "recommendedCourses": ["CHM 1045"]
}

API Endpoints

All API endpoints have the prefix api/<myfiuRevampedVersion>. All the API endpoints return an output that has the form:

{
    "status": "<int: httpStatusCode>",
    "message" "<string: additional request/response information">,
    "data": "<?: whatever the API endpoint should return>"
}
  1. /login
    • Given FIU credentials, return a JWT Token with the user's type (permissions), university email address, system supplied unique identifier and name.
      • POST
      • Accepts {username, password}
      • Returns {jwtToken}
  2. /auth
    • All these API endpoints require either an:
      • Authorization: Bearer <jwtToken> provided as the Authorization header OR
      • token=<jwtToken> as part of the request parameters
    • GET /courses/present
      • Returns a list of all courses that a student is currently taking
      • Returns [{id, name, semesterLabel, semesterMonth, semesterYear, units, grade}]
    • GET /courses/all
      • Returns a list of all courses that a student has taken up to now
      • Returns [{id, name, semesterLabel, semesterMonth, semesterYear, units, grade}]
    • GET /prediction
      • Returns a personalized prediction set of your academic path, using our analysis engine
      • Returns {expectedGpa, recommendedCourses:[]}
    • GET /info
      • Returns the user's personal information
      • Returns {pantherId, email, address, phone}

Docker Environment

A docker-compose.yml and Dockerfile file of our entire backend's environment is available is provided at our repository that automatically allows you to have a working version of this software in your desktop or production environment in an instant. This includes all of the environment dependencies needed to run MyFIU-Backend, from Node, PhantomJS and CasperJS to PostgreSQL.

If you have Docker installed on your system, simply docker-compose up and you're on your way! For more information on Docker, check out the Docker website and the Docker Compose websites.

backend's People

Contributors

alastairparagas avatar jlazarre95 avatar

Stargazers

Aid Idrizović avatar Rolando Moreno avatar Denys Volokhovskyi avatar

Watchers

James Cloos avatar  avatar

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.