Skip to content

Commit

Permalink
Remove XLSX package and references
Browse files Browse the repository at this point in the history
  • Loading branch information
Thaddeus McCleary committed Mar 9, 2022
1 parent ebb5950 commit ca12a94
Show file tree
Hide file tree
Showing 4 changed files with 60 additions and 65 deletions.
65 changes: 31 additions & 34 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,19 +4,19 @@
Seatsmart offers a convenient way to to manage classrooms by encouraging learners to make positive contributions during a lesson.

## Application Scope
Internet connection stability is a serious concern in educational settings. In addition,
the application deals with student records related to participation, which
should be stored securely. Seatsmart is designed to be offline-first, with all
data stored on the user's machine. This storage is transparently located in the
default documents folder for the user, which is separate from application files. This
allows the user to update (replace) the application without impacting partication records.

When Internet access is available, instructors can use the
[Remote](https://github.com/thaddeusm/seatsmart-remote) feature to
Internet connection stability is a serious concern in educational settings. In addition,
the application deals with student records related to participation, which
should be stored securely. Seatsmart is designed to be offline-first, with all
data stored on the user's machine. This storage is transparently located in the
default documents folder for the user, which is separate from application files. This
allows the user to update (replace) the application without impacting participation records.

When Internet access is available, instructors can use the
[Remote](https://github.com/thaddeusm/seatsmart-remote) feature to
access basic features from a mobile device. They can also engage with students
in [Activities](https://github.com/thaddeusm/seatsmart-activities) for
realtime formative assessments. Data is encrypted during transport
and this information is not stored in any cloud database. This is powered by a
in [Activities](https://github.com/thaddeusm/seatsmart-activities) for
realtime formative assessments. Data is encrypted during transport
and this information is not stored in any cloud database. This is powered by a
[realtime server](https://github.com/thaddeusm/seatsmart-remote-server) on the backend.

Every attempt is made to ensure design and UX consistency for PC and Mac.
Expand All @@ -25,41 +25,38 @@ Every attempt is made to ensure design and UX consistency for PC and Mac.
### Electron JS
[repo](https://github.com/electron/electron)

Electron allows the application to be packaged and installed for offline use with a
more native OS experience for Seatsmart users. It essentially wraps a browser-based
application within a basic browser environment (Chromium) with platform-specific
APIs. Both PC and Mac users can enjoy a similar application experience with a single
codebase. Electron was chosen over alternatives due to its maturity, solid support,
Electron allows the application to be packaged and installed for offline use with a
more native OS experience for Seatsmart users. It essentially wraps a browser-based
application within a basic browser environment (Chromium) with platform-specific
APIs. Both PC and Mac users can enjoy a similar application experience with a single
codebase. Electron was chosen over alternatives due to its maturity, solid support,
and active community.

### Vue JS
[repo](https://github.com/vuejs/vue)

Vue is a growing JavaScript framework for user interfaces in the browser. Seatsmart
uses CLI tools such as .vue files to organize the application in terms of interface
components. State management (Vuex) and routing (Vue Router) help make the codebase
readable and easy to build upon. Localization is another strength of this framework,
with its Chinese documentation and developer community of particular relevance given
Vue is a growing JavaScript framework for user interfaces in the browser. Seatsmart
uses CLI tools such as .vue files to organize the application in terms of interface
components. State management (Vuex) and routing (Vue Router) help make the codebase
readable and easy to build upon. Localization is another strength of this framework,
with its Chinese documentation and developer community of particular relevance given
the context of Seatsmart users.

### SheetJS
[repo](https://github.com/SheetJS/js-xlsx)

SheetJS allows Fort Hays State University class rosters to be imported directly as a convenience for instructors.

## Design Concepts and Inspiration
[mockups @Figma](https://www.figma.com/file/OxI3WKOFswThYuEfOR6UaV7V/Seatsmart)

Seatsmart was initially developed as a simple implementation of instructor classroom management
practices that are considered effective for courses conducted at Fort Hays State University (FHSU) satellite campuses in China. Paper-based seating charts with spaces for annotation have been in use for
some time and are still the preferred choice for many faculty members. Seatsmart
offers a digital alternative as a convenience, while striving to add features that are
difficult to implement in analog (e.g. trend calculations, randomization, etc.). The choice of colors and typography is meant to fit the university context (adult learners).
Seatsmart was initially developed as a simple implementation of instructor classroom management
practices that are considered effective for courses conducted at Fort Hays State University (FHSU) satellite campuses in China. Though paper-based seating charts with spaces for annotation had been in use for
some time, Seatsmart
offered a digital alternative as a convenience with added features that are
difficult to implement in analog (e.g. trend calculations, randomization, etc.).

New York City Metro signs were of particular inspiration, which feature circular icons
with solid colors. The color palette is based upon FHSU branding colors, with the choice
New York City Metro signs were of particular inspiration, which feature circular icons
with solid colors. The color palette is based upon FHSU branding colors, with the choice
of red as a standard alert indicator.

While the choice of colors and typography is still meant to fit the university context (adult learners), since version 2.0.0 Seatsmart has removed FHSU-specific features to provide a better experience to a wider variety of users.

Seatsmart strives to be [Humane by Design](https://humanebydesign.com).

## Running / Building on a Local Machine
Expand Down
5 changes: 2 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "Seatsmart",
"productName": "Seatsmart",
"version": "2.0.0",
"version": "2.0.1",
"author": "Thaddeus McCleary",
"description": "a classroom participation tracking application",
"scripts": {
Expand Down Expand Up @@ -31,8 +31,7 @@
"vue-socket.io": "3.0.5",
"vuetrend": "^0.3.2",
"vuewordcloud": "^18.7.12",
"vuex": "^3.0.1",
"xlsx": "^0.14.1"
"vuex": "^3.0.1"
},
"devDependencies": {
"@vue/cli-plugin-babel": "^3.12.1",
Expand Down
54 changes: 27 additions & 27 deletions src/components/Settings.vue
Original file line number Diff line number Diff line change
Expand Up @@ -39,34 +39,34 @@
<div ref="formArea">
<div class="form-group" v-for="(behavior, index) in positiveBehaviors" :key="index">
<section class="inline">
<select
<select
name="posAbbreviation"
v-model="behavior.Abbreviation"
class="narrow-select"
>
<option
v-for="(abbreviationOption, index) in abbreviationOptions"
<option
v-for="(abbreviationOption, index) in abbreviationOptions"
:value="abbreviationOption"
:key="`posAbbreviation${index}`"
>
{{ abbreviationOption }}
</option>
{{ abbreviationOption }}
</option>
</select>
</section>
<input class="large-input" type="text" name="description" v-model="behavior.Description">
<section class="inline">
<select
<select
name="posWeight"
v-model="behavior.Weight"
class="wide-select"
>
<option
v-for="(weightOption, index) in weightOptions"
<option
v-for="(weightOption, index) in weightOptions"
:value="weightOption"
:key="`posWeight${index}`"
>
{{ weightOption }}
</option>
{{ weightOption }}
</option>
</select>
</section>
<button class="delete-button black-text" @click="removeFormGroup('positive', index)">-</button>
Expand All @@ -85,34 +85,34 @@
<div ref="formArea">
<div class="form-group" v-for="(behavior, index) in negativeBehaviors" :key="index">
<section class="inline">
<select
<select
name="negAbbreviation"
v-model="behavior.Abbreviation"
class="narrow-select"
>
<option
v-for="(abbreviationOption, index) in abbreviationOptions"
<option
v-for="(abbreviationOption, index) in abbreviationOptions"
:value="abbreviationOption"
:key="`negAbbreviation${index}`"
>
{{ abbreviationOption }}
</option>
{{ abbreviationOption }}
</option>
</select>
</section>
<input class="large-input" type="text" name="description" v-model="behavior.Description">
<section class="inline">
<select
<select
name="negWeight"
v-model="behavior.Weight"
class="wide-select"
>
<option
v-for="(weightOption, index) in weightOptions"
<option
v-for="(weightOption, index) in weightOptions"
:value="weightOption"
:key="`negWeight${index}`"
>
{{ weightOption }}
</option>
{{ weightOption }}
</option>
</select>
</section>
<button v-if="index !== 0" class="delete-button white-text" @click="removeFormGroup('negative', index)">-</button>
Expand All @@ -130,8 +130,8 @@
By default, Seatsmart displays absences. You can choose an alternative behavior below:
</p>
<select name="tally" v-model="behaviorToTally" class="block-select">
<option
v-for="(behavior, index) in allBehaviors"
<option
v-for="(behavior, index) in allBehaviors"
:value="behavior"
:key="`behavior${index}tally`"
>
Expand Down Expand Up @@ -209,7 +209,7 @@
</div>
</section>
<section v-if="content == 'transfer'">
<Transfer
<Transfer
v-on:toggle-transfer-progress="toggleTransferring"
/>
</section>
Expand All @@ -230,7 +230,7 @@
</p>
<h3>Current Version</h3>
<p>
<button @click="openHomePage('notes')" class="inner-link">v.{{ version }}</button>
<button @click="openHomePage('notes')" class="inner-link">v.{{ version }}</button>
| Copyright {{ year }} <button class="inner-link" @click="openEmail">Thaddeus McCleary</button>
</p>
<h3>MIT License</h3>
Expand Down Expand Up @@ -310,8 +310,8 @@ export default {
},
computed: {
version() {
return this.$store.state.version
},
return this.$store.state.version
},
allBehaviors() {
let all = []
Expand Down Expand Up @@ -439,7 +439,7 @@ export default {
}
},
openHomePage(section) {
if (section == 'main') {
if (section == 'main') {
shell.openExternal('https://seatsmart.tech/')
} else {
shell.openExternal('https://seatsmart.tech/#releaseNotes')
Expand Down
1 change: 0 additions & 1 deletion src/views/ChartCreation.vue
Original file line number Diff line number Diff line change
Expand Up @@ -155,7 +155,6 @@ import ProgressNodes from '@/components/ProgressNodes.vue'
import TouchBar from '@/components/TouchBar.vue'
import Modal from '@/components/Modal.vue'
import moment from 'moment'
import XLSX from 'xlsx'
const { dialog } = require('electron').remote
export default {
Expand Down

0 comments on commit ca12a94

Please sign in to comment.