Lesson creation and editing - we developed the means for teachers to create, store, and edit lessons via a user-friendly graphical interface
Viewing a lesson created a page that shows all the available lessons that other teachers have made; this page excludes lessons made by the teacher who is logged in
Lesson deletion - we created a simple button for deleting a lesson, but also included a confirmation/warning message for deletion
Unit creation - we implemented unit creation with four text fields, allowing the teacher to enter the unit name, standards ID, standards description, and unit number
Unit deletion - similar to lesson deletion, we gave the teachers a way to delete units
Sharing a lesson with other teachers - we implemented a way for teachers to share a lesson that they have created with other teachers by selecting which teacher to share with
Receiving a shared lesson - we also implemented the receiving end of lesson sharing: a page that shows all lessons that have been shared with the receiving teacher
Activity creation and deletion - we developed the feature allowing teachers to add and remove activities from a given lesson
Transferring a student - we added a button to the classroom roster for moving students; this button triggers a pop-up that allows the teacher to choose which of their classes to move the given student to (this effectively adds that student to the chosen class and removes the student from the current class)
client
client is the frontend of the application. It is powered by React and Blockly.
server
server is the web server and application server. It is powered by Node and Strapi.
compile
compile is an arduino compiler service. It is an unofficial fork of Chromeduino.
The project is divided into three conceptual environments.
The development environment is composed of five servers. The first one is run with the Create React App dev server. The later four are containerized with docker and run with docker compose.
casmm-client-dev
- localhost:3000
casmm-server-dev
- localhost:1337/admin
casmm-compile-dev
casmm-db-dev
- localhost:5432
The first time the db is started, the init_db.sh script will run and seed the database with an environment specific dump. Read about Postgres initialization scripts here. To see how to create this dump, look here.
casmm-compile_queue-dev
casmm-client-dev
yarn start
from /client
casmm-server-dev
, casmm-compile-dev
, casmm-db-dev
, and casmm-compile_queue-dev
Install docker
Run docker compose up
from /
Grant permission to the scripts and server directories if you are prompted
The staging environment is a Heroku app. It is composed of a web dyno, compile dyno, Heroku Postgres add-on, and Heroku Redis add-on.
casmm-staging
- casmm-staging.herokuapp.com
server
compile
casmm-staging
is automatically built from the latest commits to branches matching release/v[0-9].[0-9]
. Heroku runs the container orchestration from there.
The production environment is a Heroku app. It is composed of a web dyno, compile dyno, Heroku Postgres add-on, and Heroku Redis add-on.
casmm
- www.casmm.org
server
compile
casmm
is automatically built from the latest commits to master
. Heroku runs the container orchestration from there.
Remaining work includes the progress tracker and saving another teacher's lesson.
No libraries were added in this project.