Coder Social home page Coder Social logo

calblueprint / ros-student Goto Github PK

View Code? Open in Web Editor NEW
7.0 15.0 0.0 5.58 MB

A student portal for Roots of Success

Home Page: http://ros-student-staging.herokuapp.com/

License: MIT License

Ruby 29.36% JavaScript 56.07% CSS 12.30% HTML 2.27%
nonprofits

ros-student's Introduction

Roots of Success

The production application is located at https://ros-student-production.herokuapp.com. This is the student entry portal, which only students should use. Admin access a different entry portal described below.

Admin Portal

The admin portal is located at https://ros-student-production.herokuapp.com/admins/sign_in. You can sign in if you have administrator credentials. The Admin Portal is the second of the two entry points into our application, and contains primarily the following pages.

Course Module Grid

This is the landing page upon logging in to the application. It contains a list of all the currently existing courses on the application platform as well as a method for creating a brand new course. Each course is represented as a card and upon clicking the card, the admin is taken to the Course Edit Page.

Course Edit Page

The admins' main functionality in editing and adding course content is hosted on thie page. The names of all label fields, including course title, description, section titles, and subsection titles can be edited inline, and are immediately saved upon clicking out of the field. Components, the lowest level structure on this page, can be edited via a pop-up modal upon clicking a particular component.

Components

There are three types of components, which can be used to build a course:

  • Slide components primarily contain an image, representing a presentation slide
  • Quiz components link to a Google Forms quiz, which will be embedded inside the app in the student course. Quiz components must contain a secret key, which the Google Form should display upon the form's completion. This allows verification that the student completed a quiz and can move on
  • Multimedia components link to a YouTube video, which is also embedded inside the student course. The navigation/scrubbing controls are disabled for the video, so the student necessarily has to finish the video to continue to the next component in the course

Audio

In addition, every type of component has an additional optional audio file, which is embedded below the main body of the component. This is to account for the case that students are studying self-paced with the application and do not have a teacher to provide instuctions. The audio will then serve as a replacement for the teacher's prompts.

Deletion

All parts of a course can be deleted via the delete buttons along the right side. The entire course may also be deleted if so desired upon entering a verification.

Users Page

This is the first tab on the navbar after the Roots of Success logo. It contains an index of all the students currently enrolled in the platform and a list of all the admins. An administrator can create another administrator by entering an email to which a prompt will be sent with instructions on how to create an admin account. This is currently a WIP, and will in the future be able to display a student's progress in all enrolled courses, and also possibly various convenience functions like search.

Tools Page

This is the second tab on the navbar, and contains a utility function for admins to export and import courses. The course data will be packaged and exported as a JSON file. If desired, an admin can choose to export a course, make edits, and reimport it as a brand new course. This can also be used as a method for backing up courses so that they can be reloaded in case they are somehow lost.

Codes Page

Admins have the ability to generate registration codes to enroll new students into a course. The top level button provides the option to generate a set of any number of codes associated with a particular context (a class in Berkeley, CA, for example). The admin will choose the courses for which those registration codes can enroll students for, and upon submission will store codes onto the server which can be downloaded as a file. The teacher/administrator may then choose how to distribute the codes to students afterwards. Students who use the codes to create a new account

Profile Page

Upon hovering over the admin name, the Profile Page may be accessed through the Profile dropdown button. This interface provides basic utilities such as the ability to change password, edit email, and so on.

ros-student's People

Contributors

charlesx2013 avatar isaiahyoon avatar jasonzbao avatar kelseylam avatar kevintxwu avatar lbkchen avatar micahcarroll avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

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

ros-student's Issues

Add component create react component

Create a "form" to create a course component.

It should contain fields for:

Picking what type of component it is.
A video/form component should just have a url.
It should also include a field to upload an audio file.
For slides, you need to be able to upload an image.

I've created an AudioUploadInput and ImageUploadInput, which takes in an image/audio, and converts it into a string, which you can pass into the components fields.

Creating component components

Create all our components as React Components (youtube/images/audio/forms) Each component type should have a corresponding React Component.

Add Create CodeCsv component

The code csv create component should include fields for: name, number of codes, and courses you want to show. You'll need to include a request to grab all the courses so that the admin can pick which course they want to add.

Add courselist to admin page

Link should link to /admins/courses/:id/edit. You might have to change the serializer so that all the courses are enabled for admins.

Implement inline editing

Using the InlineEditInput widget, allow admins to modify course name/description, section name, and subsection name. Makes correct api calls.

Implement 'Add new section/subsection' button to course edit page

There should be a button that adds a new section to a course, and a new subsection under the specified section.

You'll need two prs:

  1. One that changes the default name for section/subsection to 'Section'/'Subseciton',
  2. Adds the buttons that creates the section/subsection

Fix permitted courses

Right now, students can view any course they want to. You should fix the ui so that you have two sections, the courses the student is in enrolled in, and the course that arent (these should be greyed out and unclickable).

You should also modify the StudentAbility so they can't load the course information. You can take a look at how abilities work

https://github.com/CanCanCommunity/cancancan/wiki/Defining-Abilities-with-Blocks

A student is enrolled in course if they have StudentCourse object.

Create CourseEdit bundle

Add link in admin dashboard that creates a new course.
Add courseEdit bundle that we send when someone creates a course or visits /courses/:id/edit page

Make course page subsection bar

image

Doesn't have to be super comprehensive - it should just show list of components when you click on a subsection in the sidebar.

Add permissions to sidebar.

Students should not be able to access sidebar elements unless they've completed the subsection before it. You can take a look at hte documentation for cancancan, our auth framework.

Add Course Edit page

Make api to get course as it is so far. (/api/courses/:id)
Allow user to add sections.

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.