Team-10g / Emerald-Project17-10g

The Code Sparks repo for the Emerald team
https://www.casmm.org
0 stars 2 forks source link

List of all project features implemented

Lesson creation and editing - we developed the means for teachers to create, store, and edit lessons via a user-friendly graphical interface

Picture1

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

Picture2

Lesson deletion - we created a simple button for deleting a lesson, but also included a confirmation/warning message for deletion

Picture3

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

Picture5

Unit deletion - similar to lesson deletion, we gave the teachers a way to delete units

Picture6 Picture7

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

Picture8

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

Picture9

Activity creation and deletion - we developed the feature allowing teachers to add and remove activities from a given lesson

Picture10 Picture11

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)

Picture12 Picture13

Instructions for how to run the project locally

Application

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.


Environments

The project is divided into three conceptual environments.

Development

Structure

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.

Running

casmm-client-dev

  1. Follow the client setup
  2. Run yarn start from /client

casmm-server-dev, casmm-compile-dev, casmm-db-dev, and casmm-compile_queue-dev

  1. Install docker

  2. Run docker compose up from /

    Grant permission to the scripts and server directories if you are prompted

Staging

Structure

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.

Running

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.

Production

Structure

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.

Running

casmm is automatically built from the latest commits to master. Heroku runs the container orchestration from there.

Outstanding work

Remaining work includes the progress tracker and saving another teacher's lesson.

Built Upon

No libraries were added in this project.