GithubHelp home page GithubHelp logo

jerrychen109 / checkpcr Goto Github PK

View Code? Open in Web Editor NEW

This project forked from rianadon/checkpcr

0.0 0.0 0.0 2.31 MB

A client for PCR, the homework system used by The Harker School

License: MIT License

JavaScript 25.18% CoffeeScript 25.40% CSS 44.85% HTML 4.57%

checkpcr's Introduction

Check PCR

A client for the homework system currently used by the Harker School, PCR.

Getting Started

First of all, to use Check PCR, you have two options:

  1. The online version at https://checkpcr-harker.rhcloud.com, which will always be the latest version.
  2. The chrome extension, which does not automatically update (sorry ๐Ÿ˜ž), but possibly has some advantages (below)

The only advantages of the chrome extension is that it communicates directly with PCR rather than through the program I created on the server hosting the website (see more here), and its code is editable.

To use the online version, navigate to https://checkpcr-harker.rhcloud.com. Otherwise, follow the steps below.

I also recommend you put PCR in month view before using Check PCR so you can see more assignments (it doesn't yet support switching weeks).

Installing

Because I chose not to publish Check PCR on the Chrome Webstore, you'll have to install it in developer mode by following the directions below.

  1. Download the repository either through clicking the "Download zip" button and unzipping the zip file or, if you've installed git, running this in a terminal:

     git clone https://github.com/19RyanA/CheckPCR
    
  2. Navigate to chrome://extensions in Google Chrome.

  3. Make sure the "Developer mode" checkbox in the top is checked. Developer mode

  4. Click "Load unpacked extension..." and choose the folder that you downloaded or cloned into.

  5. Go to chrome://apps and click the "Check PCR" icon (it should behave just like any other chrome app).

You may also see a "disable developer mode extensions" dialog box every time you start Chrome. That is because by following the above steps, you have just installed CheckPCR in developer mode.

If there are any problems with the program or completing the above steps, please create an issue on Github.

Compiling / Hacking

First of all, if you want to change anything and have that change preserved when updating, you must use git to clone the repository.

Now, if you want to change anything in the extension, you have two choices. You can either

  1. Directly modify the JavaScript and CSS files
  2. Modify the CoffeeScript and Sass files (better)

If you really must, you can go with the first option. However, I cannot stress just how much I recommend the second option, especially if you don't want to be plagued with merge conflicts.

To compile the CoffeeScript and Sass files, you again have two options.

  1. The first is to download (if you haven't already) Node.js from its website, CoffeeScript by running npm install -g coffee-script, and Sass by following the instructions here. Once you've done that, you can use coffee -b -c client.litcoffee to compile the main JavaScript file and sass style.sass style.css to compile the main stylesheet.

  2. The other is to use gulp. As in option 1, you'll need to have Node.js installed. Open a terminal and run npm install -g gulp, then navigate to the folder that you cloned into and run npm install gulp gulp-coffee gulp-sass gulp-util.

    You can also use gulp-ruby-sass instead of gulp-sass, which I use (making your version less different than mine), but it requires the Sass Ruby gem to be installed (see the link above on how to download the Sass gem).

If you have fixed any bugs or added any useful features, I would be ecstatic if you sent a pull request.

Features

Immediate and Offline Loading

Each time data is successfully fetched from PCR, it will be saved to localStorage (JavaScript's caching system). Then, when you visit Check PCR again, whatever was saved last to localStorage will be loaded, regardless of internet connectivity.

List View and a Simpler Calendar View

With list view, you can easily see all of the assignments due and assigned for the day, like in HHMS. Also, calendar view assignments are again shown as a solid bar across multiple days.

Assignment completion tracking

You can mark when you have completed assignments. Completed assignments will then show up in a darker shade in calendar view and will disappear from list view.

Automatic Login

If you click the "Remember me" checkbox when signing in, your password will be stored for 2 weeks, more than PCR will normally do. However, even though it is base64 encrypted then stored in a cookie, someone could easily open up the cookies for the site and use JavaScript to quickly decode it. Despite that, the probability of someone being able to do all of that on your computer is pretty unlikely.

Upcoming Tests and activity

See upcoming tests shown in calendar view and recently added/deleted/modified assignments in a separate section on the side.

Automatic Link Detection

Check PCR will automatically make all links clickable in assignments.

And much more

You'll just have to install the app to know.

To Do

See the wiki at https://github.com/19RyanA/CheckPCR/wiki.

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.