GithubHelp home page GithubHelp logo

rianadon / checkpcr Goto Github PK

View Code? Open in Web Editor NEW
8.0 6.0 3.0 4.44 MB

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

License: MIT License

HTML 4.74% CSS 42.02% JavaScript 28.46% TypeScript 24.78%

checkpcr's Introduction

Check PCR

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

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.

Note: Yes, installing extensions in developer mode is not as secure as installing chrome extensions from the webstore as extensions installed in developer mode are not controlled by Google. However, this extension is open source, so if you desire you can look through the source code or trust me.

  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 (after navigating to wherever you want the cloned repository to be placed):

     git clone https://github.com/rianadon/CheckPCR
    

    You could also install the GitHub desktop app and use it to clone the repository.

  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

NOTE: These instructions have changed since I moved to typescript. Building the typescript files is now done with webpack (node_modules/.bin/webpack). You can use --watch to run incremental builds. Gulp is still used for all other files (icons and stylesheets).

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 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, 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 overjoyed 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.

checkpcr's People

Contributors

19ryana avatar chiragzq avatar rianadon avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

checkpcr's Issues

Error Parsing Assignments

Every time I open Check PCR, a popup shows that says "Are you in week or month view?" This shows even though my regular PCR is on month view. This is copied and pasted from the popup.

Message: Cannot read property '1' of null
Stack: TypeError: Cannot read property '1' of null
at parse (chrome-extension://nlppblbfamffglclfjgflgpkalncnfni/client.js:482:53)
at chrome-extension://nlppblbfamffglclfjgflgpkalncnfni/client.js:282:11
Browser: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36
Version: 2.24.3

Fetching URL is outdated

The fetching URL for the extension is outdated. You should use the new one (SC-Assignments) instead of the old one (Student-Assignments).

Added assignments show up as done

A few people have commented that added assignments show up as completed.
I have not witnessed this myself, so if anyone has any information on this I would love to hear it.

Could Not Load Manifest?

I followed the tutorial exactly, but I'm getting an error when I try to load the extension that says "Error loading extension: Manifest file is missing or unreadable." Help?

CheckPCR Disappears

I realized over the past few weeks, the CheckPCR extension would completely disappear from the extensions and apps section. At first I thought was because I deleted the file, but today it just disappeared randomly and didn't appear anywhere. When I re-add it, it thinks that I am a new user and takes me back to the welcome page.

Athena integration -- opening wrong course

Clicking the course name in the cards is opening the wrong course; could potentially be the way you're extracting them from the Athena integration data but not sure.

A bug :o

So I literally just opened pcr and this thing popped up. I don't remember doing anything wacky, but the last thing I remember doing besides looking at the hw was change one of the colors. It looks like it found my assignments, so it's just the color that's not working.

Also, the close button on the pop-up doesn't work

Message: Failed to execute 'insertRule' on 'CSSStyleSheet': Failed to parse the rule '.assignment.0 { background-color: {; }'.
Stack: Error: Failed to execute 'insertRule' on 'CSSStyleSheet': Failed to parse the rule '.assignment.0 { background-color: {; }'.
    at addColorRule (chrome-extension://keigdnfobajaopgfaeampfbokfaombjc/build/app-bundle.js:3285:15)
    at Object.entries.forEach (chrome-extension://keigdnfobajaopgfaeampfbokfaombjc/build/app-bundle.js:3294:13)
    at Array.forEach (<anonymous>)
    at updateColors (chrome-extension://keigdnfobajaopgfaeampfbokfaombjc/build/app-bundle.js:3293:42)
    at Object.<anonymous> (chrome-extension://keigdnfobajaopgfaeampfbokfaombjc/build/app-bundle.js:3306:1)
    at __webpack_require__ (chrome-extension://keigdnfobajaopgfaeampfbokfaombjc/build/app-bundle.js:20:30)
    at chrome-extension://keigdnfobajaopgfaeampfbokfaombjc/build/app-bundle.js:69:18
    at chrome-extension://keigdnfobajaopgfaeampfbokfaombjc/build/app-bundle.js:72:10
Browser: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36
Version: 2.25.0

Parsing Bug

I've encountered an bug.

Messsage: Cannot read property 'indexOf' of undefined
Stack: TypeError: Cannot read property 'indexOf' of undefined
    at display (chrome-extension://mibpogcodkojknjlgjeckmakcigjodnp/client.js:1236:24)
    at parse (chrome-extension://mibpogcodkojknjlgjeckmakcigjodnp/client.js:502:3)
    at chrome-extension://mibpogcodkojknjlgjeckmakcigjodnp/client.js:282:11
Browser: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.92 Safari/537.36
Version: 2.24.3

Parsing Error

Hi. I opened CheckPCR and encountered this error.

Messsage: Cannot read property 'parentNode' of null
Stack: TypeError: Cannot read property 'parentNode' of null
    at parse (chrome-extension://dgmfnaeknojgajodfffkfadjoclbkolj/client.js:453:51)
    at chrome-extension://dgmfnaeknojgajodfffkfadjoclbkolj/client.js:282:11
Browser: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36
Version: 2.24.3

Bug Report

I've encountered an bug.

Messsage: Cannot read property 'indexOf' of undefined
Stack: TypeError: Cannot read property 'indexOf' of undefined
    at display (chrome-extension://iofggienboopplgnobbjfafkcodclkpl/client.js:1236:23)
    at parse (chrome-extension://iofggienboopplgnobbjfafkcodclkpl/client.js:502:3)
    at chrome-extension://iofggienboopplgnobbjfafkcodclkpl/client.js:282:11
    at <anonymous>
Browser: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.96 Safari/537.36
Version: 2.24.1

no way to forget password

if you enter a wrong password and say remember password it doesn't seem to have a way to back out

Monthly carry over

Before, as a new month began, CheckPCR would rollover past assignments and user generated tasks in the list view. However, it does not do that anymore. Moreover, one can't go back to view assignments due in previous months (using the left arrow button in the list view), whereas that was possible previously. Is this due to a new update or PCR itself?

Error Parsing assignments

I try to help my friend set up Check PCR, and I followed all the instructions on your home page, but every time he signs into PCR there is a sign that says "Error Parsing Assignments." This might be a bug. Can you fix it or tell me what is going on? BTW, I think your software is very cool ;)

Calendar View Should Display Month as Header

Pretty self-explanatory -- I think that the calendar view should display the month in a header bar (eg right above the days of the week), and should offer an option to switch months (like PCR does).

Great work, by the way! I'm very impressed.

PCR Parsing error

I've encountered an bug.

Messsage: Cannot read property 'indexOf' of undefined
Stack: TypeError: Cannot read property 'indexOf' of undefined
    at display (chrome-extension://bgfabcdolnakhoioalgalampgaaphoei/client.js:1236:24)
    at parse (chrome-extension://bgfabcdolnakhoioalgalampgaaphoei/client.js:502:3)
    at chrome-extension://bgfabcdolnakhoioalgalampgaaphoei/client.js:363:11
Browser: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.92 Safari/537.36
Version: 2.24.3

Faster way to update?

You might want to check out https://www.meteor.com/
It'll host your site (catch is, domain will be whateveryouwant.meteor.com)
It'll update everyone using the page when you push code back.

Even if you don't decide to use it,
is there a way to make it update without manually cloning the repo?

Is not loading Assignments.

When I open Check PCR it opens and says "Loading your Assignments" and that message never goes away. Please help.
untitled

bug!

I've encountered a bug.

Message: Could not find month view indicator (document title is 
	Error
)
Stack: Error: Could not find month view indicator (document title is 
	Error
)
    at parse (chrome-extension://nbemcenpbhhhfmfaoddmjbljodldlica/build/app-bundle.js:1387:15)
    at fetch (chrome-extension://nbemcenpbhhhfmfaoddmjbljodldlica/build/app-bundle.js:1175:17)
Browser: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36
Version: 2.26.0

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.