Coder Social home page Coder Social logo

sandboxnu / office-hours Goto Github PK

View Code? Open in Web Editor NEW
31.0 6.0 13.0 160.7 MB

Webapp to streamline office hours at Northeastern.

Home Page: https://info.khouryofficehours.com

License: GNU General Public License v3.0

JavaScript 7.39% Shell 0.37% TypeScript 91.84% CSS 0.21% Python 0.17%
office-hours education

office-hours's People

Contributors

aislinblack avatar ashdawngary avatar brianyyang avatar bugsalexander avatar dajinchu avatar dependabot[bot] avatar dfarooq610 avatar ethan-leba avatar irisliu-00 avatar isa3bel avatar jtavera235 avatar liustanley avatar lutongling avatar neuditao avatar nicoledanuwidjaja avatar ofloody avatar sanpilot avatar sumitde22 avatar tiingweii-shii avatar vkong6019 avatar willstenzel avatar

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  avatar  avatar  avatar  avatar

office-hours's Issues

Queue short URL redirect

This is pretty minor, but we'd eventually like to have khouryofficehours.com/queue/{queueId} redirect to khouryofficehours.com/class/{classId}/queue/{queueId} for easier sharing.

Display 404 error when route is not valid

With the route /class/[cid]/queue/[qid] if an incorrect course id (cid) is used we get a runtime error in the nav bar and if an incorrect queue id (qid) is used a blank queue page is shown.

For both of these cases we should show a 404 error if the route is not correct.

Custom react-big-calendar toolbar

I found a solution for the month view, turns out your calendar needs to have a set height in order for it to display properly. I just pushed a commit with my change for this.

Regarding responsiveness, it seems like the crunkiness is coming from the Toolbar. It's probably worth looking into a custom Toolbar if you can't find a built in responsive solution in the library: https://jquense.github.io/react-big-calendar/examples/index.html#prop-components. This seems like a good example of a custom Toolbar: jquense/react-big-calendar#191.

Originally posted by @liustanley in https://github.com/sandboxnu/office-hours/pull/9/files

Fix GitHub action checks

Checks are currently failing for a multitude of reasons, reasons include:

  • Notification code
  • Lint is failing due to eslint warnings across the codebase
  • Issues connecting to the database
  • Deployment failing due to decorators

@dajinchu feel free to add on to the list if I missed anything

Revamp UI

Clean up everything, update styles to reflect new mockup style.

  • Today page
  • Queue page

App entry point API data flow

We set up a temporary solution in PR #16 in which /api/v1/profile is fetched via the /pages/_app.tsx entry point. This profile data is then made available to every component through useContext, but I think we need more contexts for data such as the current Course and the current QueueId. This would then allow us to use SWR in /pages/queue.tsx as brought up by Alex here: https://github.com/sandboxnu/office-hours/pull/16#discussion_r441819520, as well as encode the QueueId in the URL.

I'm not sure what the best structure would be for this data flow, if anyone has ideas feel free to pitch in.

Create Queue Popup Backend + Integration

Backend for #57

  • Setup create queue endpoint on the backend and integrate with database
  • Implement logic to prevent/resolve conflicts between user created queues and scheduled queues
  • Integrate new endpoint with Create Queue Popup UI

Clickable OpenQueueCard

  • Add a deeper drop shadow on hover
  • Figure out how to make it not buggy with existing input/buttons

Allow TAs to open scheduled office hours 15 minutes in advance

  • Create alternate OpenQueueBlock on the Today Page that allows TAs to open a scheduled queue 15 minutes early.
  • Change backend OfficeHours query to include queues 15 minutes ahead, maybe mark each office hours object with a field to indicate that it's early?

Student CRUD question

UI and frontend logic for a student's queue page once they enter the queue. Allows the student to edit their question reusing the JoinQuestionForm.

Associate notifications with a question

Yeah... maybe it should be a route on /queues/:queue_id/questions/:question_id/notify so that the notification is associated to the question ticket, not a catch all notify-anyone route.

Originally posted by @dajinchu in #33

Nest.js Migration

  • Dev design #46

Implementation:

  • Setup folders
  • Copy over hapi controllers almost verbatim
  • copy over and translate integration tests
  • Request validation with DTOs
  • Maybe use nest.js serialization to simplify code
  • Authentication + Authorization
  • Environment variables config stuffs
  • Logging setup
  • Fix all the scripts + eslint + tsconfig

Reach out to all the TAs you know

Email template: https://www.notion.so/TA-Email-Template-cff946b0712f4253ae5467c3c0b877d1

Requirements:

  • Has TA'ed online
  • TA'ed a Khoury class (ideally Fundies or OOD)

Invited

  • Julia Abouelheiga - Fundies 2 Summer 1

Friday 24th @ 7pm

  • Iris Liu - Fundies 1 Spring + Summer 1
  • Ifteda Ahmed-Syed - Fundies 2 Spring + Summer 1
  • Stanley Wu - Fundies 1 Spring + Summer 1
  • Danish Farooq - OOD Summer 1

Tuesday 28th @ 8pm

  • Sidney LaFontaine - Fundies 1 Spring + Summer 1 (confirm w him that 8pm is ok)
  • Yuval Timen - Fundies 2 Spring
  • Isabel Tripp - Fundies 1
  • Iman Moreira - Fundies 1 Spring + Summer 1
  • Cassie Harbour

Async (Send questions and receive text responses)

  • Tatiana Ediger - Fundies 1 Spring + Summer 1
  • Pablo Kvitca - Fundies 2 Spring + Summer 1
  • Varun Tankala - Fundies 2 Spring + Summer 1
  • Angela Hu - Fundies 2 Spring + Summer 1

Stanley interviewing

  • Ameya Bhat - Fundies 2 Spring + Summer 1

Refactor queue.tsx

Refactor /pages/queue.tsx into TAQueue and StudentQueue components which can then be rendered from a conditional in the parent Queue component.

Create Queue Popup UI

When a TA arrives at their office hours and no queue is already open (if they have arrived before the scheduled start time) they will hit the the "Create Queue" button which will trigger a modal popup which includes:

  • Room that the office hours are held in
  • Any notes they want to add to the queue

Protect POST endpoints

Add security on the backend so that only Students or TAs can perform certain actions (especially with updating questions).

Student Page Bork

It seems when i join a queue as a student, the # in queue counter on the today page doesn't update now, i believe this was working before tho

Originally posted by @liustanley in #87

Nest.js migration dev design

hapi is kill so we have to migrate to www.nestjs.com

Plan for this story is to research the framework, do tutorials, and create a dev design for how we're going to accomplish the backend migration from hapi to nest.js. If we're able to finish this earlier than planned, we can just get started on implementation.

Nest.js Server Documentation

I won't assign this to the project board because we can kind of do it passively whenever we have the time to do so.

  • Route changes and why we changed them
  • How to's, basic nest features
  • Maybe high level overview of module file structure?

Admin page

Simple page that lets admins:

  • Enable office hours for a course
  • input the ical URL

Embed course + queue id as URL parameter

Use URL path of /queue/{queueId} so that queue links are easily shareable.

Edit: I realized that in order to do this we need to have some way of managing the selected course, so I'm going to manage the state for that in _app.tsx

Protect GET endpoints

Example: a student who isn't enrolled in CS 2500 (course id 1) tries to navigate to khouryofficehours.com/class/1/today. Any API requests made for this class should return with an error because they aren't enrolled in that class. Same goes for queue routes.

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.