adamvig / goco-student Goto Github PK
View Code? Open in Web Editor NEWGordon College Student app
Home Page: https://gocostudent.adamvig.com
Gordon College Student app
Home Page: https://gocostudent.adamvig.com
A view that shows a list of all of the establishments on campus with hours and whether or not they are open.
Requires finding the hours of all establishments on campus.
A percentage red/green bar on each item in the list with the text "open until :" or "closed until :" with expandable full list of hours.
Icon: ion-ios-clock
, ion-ios-clock-outline
, or Clock by Nicholas Burroughs
Text: "See What's Open"
Color: #A52924
(dark red)
Add dining menu from Go Gordon Dining Services Page.
Only have menu for next meal, which is provided by the dining services page referenced above. The entire menu is located elsewhere on the site, but is not formatted in a way that is possible to parse into specific days' menus. Menus are only referenced by the day of the week they fall on.
info-prefix should be attribute on , should get added before data in template.
Z-Index is too low for the banner to show up over the modules. Set Z-Index to 11 or higher.
Platform was added in UsageService, but since UsageService has been removed, there is now no method by which to add the user's platform info to their stored information in the database.
Possibilities:
Add screen on first login to display privacy policy and allow users to opt out of data caching.
GoCo Student stores some data about you in my own database. Your password is never stored anywhere. By default, the app stores your personal information: chapel credits, meal points, student ID, etc. This data is used to make the GoCo experience better for you.
If you would like to opt-out of having this data stored, please tap Opt-Out below.
[Opt-Out] [Continue Storing Data]
Opt-Out button yields confirmation popup:
Do you really want to opt out of data caching?
[Never mind] [yes]
Configuration modal is not anchored to the bottom of the screen on the iPad Air. Instead, it has seemingly random amounts of padding on the sides.
Also, the module titles in the modal are cut off.
Currently, there is no way to tell if a user has the app on his or her phone. The user is retained in the database even if they uninstall immediately after installing and signing in.
One way to remedy this is to delete the database at the beginning of every year and allow it to fill up again as users use the app. This is a method of "pruning" users who have uninstalled the app or gone dormant. For example, graduating seniors will no longer need the app and will probably uninstall it.
In module configuration, add font-size-class property that takes a class that specifies font size of the module's data.
Add classes data-font-small
, data-font-medium
, and data-font-large
.
if current app version is different than stored app version:
delete credentials (sending user back to login screen, forcing re-login)
delete stored modules (forcing configuration screen to pop up to show user the potential new module options)
This will also force the user to go through the new login validation screen which will prompt the user to accept the privacy policy at the end.
Requires the server to support automating the My Gordon meal points transfer interface: AdamVig/AdamVigData#1, AdamVig/AdamVigData#2, AdamVig/AdamVigData#3, AdamVig/AdamVigData#4.
Separate view.
Fields:
Loading animation same as others, text "Transfer in progress".
After loading completes, display instructions:
NEXT STEPS:
- Tell ______ to confirm the transfer via GoCo Student.
- Auxiliary Services will approve the transfer.
- Transfer is complete!
Icon: ion-arrow-swap
, ion-paper-airplane
, ion-pizza
, or ion-cash
Text: "Transfer Meal Points"
Color:
Dynamically apply class enable-scroll
to <ion-content>
when home.selectedModules > 5
that sets overflow-y: auto;
on .scroll-content
.
Add simple temperature display module.
Should auto-refresh instead of refreshing only on demand.
Type: info module
Icon: ion-ios-sunny-outline
, ion-ios-sunny
, ion-ios-cloud
, or ion-ios-cloud-outline
Label: Temperature in Wenham
Color: #f3c520
(light yellow)
Modules that are added to defaults, saved in users' configuration data, then removed in a later version of the app should be automatically removed in a function similar to addMissingModules
.
Perhaps this function could be renamed to updateDefaults
.
Logic:
for each module in user modules
if name does not exist in default modules
remove module from user modules
for each module in default modules
if name does not exist in user modules
add module to end of user modules
'Prefix' property already exists, currently only used for dollar signs in front of mealpoints and mealpoints/day. 'Suffix' will be used for '℉' (degrees fahrenheit) in temperature module.
Instead of having custom error messages for every imaginable error type in the app, pass the error messages straight from the server's responses.
When user submits login form, display loader ("Checking login") and send request to /checklogin endpoint which will perform a test login on Go Gordon and return either 200 OK
or 401 UNAUTHORIZED
.
This route will only be triggered if this is the first time the user has logged in. LoginController will determine that it is the first time a user has logged in if the /user/firstname.lastname
route returns 404 NOT FOUND
.
If login is successful, display checkmark animation and display privacy policy / data caching opt-in.
If login failure, display red "x" animation and link to login screen with text "← Try Again".
If unexpected error on server (any code that is not 200 OK
or 401 UNAUTHORIZED
), display yellow "?" animation and link to main screen with text "Continue Anyway →".
Configuration modal gets covered by advertisement banner.
This should not be a problem, because the banner should push everything up above it.
Currently the chapel logo on the login page does not fit on the screen of an iPhone 4.
Either put in a device-specific media query, use the Ionic body classes, or decrease the general size of the chapel logo so it will fit on all screens.
Requires last day of semester to be stored in database.
Simply divide meal points by the number of days left in the semester.
Color: #B76BFF
(bright purple)
Text: "Meal Points Per Day"
Calculator Icon: ion-calculator
Create directives or separate template files for the interface of the app.
Allows for user configuration of what they want to see in the app, for example if a commuter student doesn't care about meal points they can see only chapel credit.
Allows for adding a large number of data modules without cluttering the display unnecessarily.
Configuration of the display should be available via the header bar menu at all times.
Post login currently interrupts the expected flow of logging in to the app to provide a service that most users will not need.
The improved flow of events mostly takes the user out of the equation. The user does not care about any of these internal states and should not have to interact with any of them except "Invalid Login."
The _postlogin.html
template and PostLoginController
should be repurposed for the privacy policy.
Currently, usage is tracked via requests sent from the app directly to the CouchDB database.
However, all of the relevant usage information could be sent along with each request to the server and the server could interact with the CouchDB database. This also allows for the creation of simple endpoints for usage tracking: /createuser, /trackuser?requesttype=____&requesttime=_____
Ionic Crosswalk Blog Post
Multiple APK Support | Android Developer
Add Crosswalk plugin, do a test build, see size of APK file(s).
Modules do not respect height: 50%
on iOS, instead taking up 100% of the viewport height.
For development only - for users, new modules will only ever be introduced when the version changes.
In HomeController
, use ModuleService.updateModules(defaultModules, selectedModules)
to add changes in to the user's saved copy of the modules.
in config.xml maybe
Change UsageService to include:
Requires running a server on campus to access printer credit from the Gordon network (print.gordon.edu resolves to a locally-hosted website).
Add a module to view printer credit.
Icon: Print by Rodolfo Alvarez, ion-ios-printer
, or ion-ios-printer-outline
Text: "Printer Credit"
Color: #00A200
(bright green)
The user currently has the power to disable all available modules, leaving a blank blue screen.
Add a function that checks if at least one module is selected before allowing the user to deselect a module.
The function should create an informational popup to explain why the user can't disable the last module, or the check button on the last module could simply be disabled if selectedModules.length == 1
.
Real-time display of events happening on campus split into categories:
Add Twemoji to render emoji on platforms that do not support it.
Switch all units from viewport to either em or percentage.
Window should explain what the configuration screen is for.
Generate barcode using student barcode number from /whoami page on Go Gordon so students can scan at chapel.
The value of "0" is evaluated as == false
in ng-show
, so the module data is not showing up after loading.
Send requests as POST with all data in the POST body for security purposes.
Add module with number of days left in the semester.
Data required: date of last day of semester
Color:
Icon: ion-ios-calendar-outline
Label: Semester Countdown
When the banner is changed in the database, the app has to be hard-restarted for it to update.
Make all of the data update functions refresh the banner.
Test Case: "studentID" becomes "student-i-d"
Get student ID from Go Gordon.
Icon: ion-card
or ion-person
Label: Student ID
Color: #F2534D (light red)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.