Giter Club home page Giter Club logo

jhuopensource / semesterly Goto Github PK

View Code? Open in Web Editor NEW

This project forked from noahpresler/semesterly

32.0 32.0 56.0 133.99 MB

Your Semester Made Easier | Course Scheduling & Social Tools for Students

Home Page: https://semester.ly

License: GNU General Public License v3.0

JavaScript 2.76% Python 4.55% HTML 88.92% CSS 1.48% Dockerfile 0.01% Shell 0.01% SCSS 0.64% TypeScript 1.63%
course-registration django open-source reactjs redux university

semesterly's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

semesterly's Issues

Logging in different accounts and trying to connect to existing accounts causes an AuthAlreadyAssociated exception

Steps to reproduce:

Suppose there are no students in student_student.

  1. Log in with Facebook
  2. Log out
  3. Log in with Google/JHU
  4. Click on Continue with Facebook
  5. Log in with the same Facebook account
  6. AuthAlreadyAssociated exception is raised

Potential solution:

  • Extend the social pipeline to catch this error
  • Create a modal informing users to delete their existing account
  • Redirect users to this modal

Revamp Analytics page

Right now, Semester.ly’s analytics page is very plain. We were thinking we could look into outsourcing some of our data-visualization, improving the metrics we track, and updating the overall look of the page.

Add Hopkins authentication

In order to get student data from SIS, we need to have students log-in using Hopkins authentication.

This involves:

  • Configuring Django Microsoft Azure authentication
  • Creating a Hopkins Login button on initial login modal that triggers Hopkins auth
  • Connecting existing accounts to Hopkins accounts (if users have existing Facebook Semester.ly accounts)
    • Not exactly sure how this will work, but we want to avoid having users with existing Facebook accounts create new accounts
    • I think we do this type of "connection" with Google+Facebook accounts so taking a look at how that works might help!

Add testing for advising app

Tests todo-list:

  • AdvisorSerializer
  • AdvisingView GET redirects a non-JHU-authenticated student to Microsoft Azure login
  • StudentSisView
    • GET returns appropriate semesters in reverse-sorted order
    • POST properly populates data that mocks SIS' request
    • POST invalid tokens are properly handled
    • POST 404's when the data is improper (should it only save if everything is successful?)
    • POST If a course is invalid, what should we send in response? #226
  • RegisteredCoursesView
    • GET returns the correct courses for a student
    • GET correctly verifies sections against the current timetable
    • GET denies an advisor that isn't an advisor
    • GET denies an advisor that isn't an advisor on the student's transcript
    • GET returns the correct courses for an advisor requesting student data

Revamp Advanced Search feature

The typical Semester.ly user at JHU searches for some or all of their courses using SIS's Advanced Search feature. Typically, Semester.ly comes in when students are decided which courses (of those found through SIS) will fit together in a nice schedule. This feature aims to completely eliminate the need for users to use SIS's Advanced Search feature. We want Semester.ly's search to be just as good if not BETTER than SIS's search.

Should adjust the UI/UX as well the backend for advanced search feature. The reviews section is outdated and needs to be replaced with a sufficient, sustainable API.

Design final UI for advisor's side of dashboard

What components will we need to write?
What components can we re-use?
Is the UI intuitive for advisors? Do they want to see all of their students and pick their students first or do they want to see all of the chats?

Design backend for chat feature

We know what we want out of our chat system on the advising dashboard.
We want:

  • the entire chat history to be saved and tied to the student
  • advisors and students to both see the chat
  • all advisors to have access to the same chat (as in it should be a group chat with all the student's advisors)
  • the chat to look and function in a way that is familiar and user friendly

However, we haven't yet had a discussion about how we will design all of this in the backend.

  • What models do we need?
  • What will the models look like?
  • What is the most efficient way to store this transcript?

We need to design this backend! The best way I find to do this is to draw diagrams and write out what fields each model will have and how they will connect.

Add Advisor Frontend Modal (for testing)

Per James's notes:
have 4 text inputs for things like first name, last name, email address, and jhed

if we go with the modal, the flow would be
click on link -> open modal -> input first name, last name, jhed, email -> backend adds advisor to student -> refresh -> new advisor should appear in the dropdown -> invite

Create a feature request tool

As it stands, there isn’t a simple way for users to suggest new features they would like for Semester.ly. Every once in a while, the team sends out surveys and that is how we currently get feedback from users. However, something that would be really cool is a place on the Semester.ly homepage for users to submit feature requests or suggestions for improvement!

Update course reviews/evaluations with more recent data

Depending on what this entails - it may be a semester-long project?

At the moment, the course review data on Semester.ly is really outdated (think 2014 and 2015 data… yikes!). With this project, your task would be to figure out how the original course review data was ingested and processed on Semester.ly, and either apply that process to more current course review data or figure out a better way to sustainably ingest the new data

Get and Store Student SIS Data

In order to create an advising dashboard with an official schedule, we need the be able to see a student's official semester data.

This will involve:

  • Designing and API with @alihacks
  • Creating a few mock json files for testing/creating features with this data

Decide on V1 Advising Dashboard UI

We have mocks created for an advanced version of the Advising Dashboard - but we know that we need to first create an MVP version.

First, we need to decide:

  • Where will the initial advising dashboard button be / what will it look like?
  • What will the UI of the MVP look like? We need some versions of this paired down mock that only include:
    • a 'return to semester.ly' button
    • a chat
    • courses a student is currently registered for OR
    • courses a student has in their cart (if they aren't registered for any courses AKA it is before registration date)
    • courses a student is currently waitlisted for? <-- should we include this? is this necessary?
  • Once we decide on how it will look for students - i think it will look the same for advisors (just with minor tweeks) so we can then create a mock of the advisor side of things!

Add Advisor login flow (first time advisor login)

What im thinking:

When an advisor logs in for the first time, we check the "Advisor" table and see if their JHED (is this reliable?) exists in that table.
If it doesn't exist, we assume they aren't an advisor for any students who have imported their SIS data (what if a student imports their SIS data after the advisor already has an account?).

If it does exist, a student has them as an advisor - so a social auth User and Student object is created for the advisor and it is somehow indicated in that object that they are an advisor (maybe a boolean is_advisor in the Student model?).

Anyway, when it comes to rendering the advising dashboard - we need to check whether the user and an advisor or not. If they are an advisor, their dashboard will be slightly different (we will need to conditionally render components based on some is_advisor boolean in the frontend i believe).

Anyway - those are my initial thoughts.

Add a time-zone change feature

This past year, Hopkins students have been working and attending their courses from all over the world! So now, more than ever, there exists a demand among users to incorporate an option for students to change their time zone.

Test Authenticating Multiple Accounts

Semester.ly plans to offer 3 ways of authentication: Google, Facebook, and JHED. We are currently working on getting Google authentication to work again.

We want to test that the following sequences of authentication work:

  • Facebook -> JHED -> Google
  • Facebook -> Google -> JHED
  • JHED -> Facebook -> Google
  • JHED -> Google -> Facebook
  • Google -> Facebook -> JHED
  • Google -> JHED -> Facebook

Remove add advisor testing endpoint

/advising/testadd/ and its associated view are currently only used for testing purposes. In the future, we may allow students to add other students as their advisors.

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.