zooniverse / classroom

Front end for the education-api (https://github.com/zooniverse/education-api/)
https://classroom.zooniverse.org/
Apache License 2.0
0 stars 1 forks source link
hacktoberfest

Zooniverse Classrooms

Zooniverse Classrooms (formerly Education API Front End, or edu-api-front-end) is the Zooniverse's web portal for educational tools, designed for Teachers and Students who want to learn more about science using real world people-powered research projects.

The website is available at https://classroom.zooniverse.org/

Zooniverse Classrooms is divided into different Programs that cater to different fields of study, and each Program is usually also associated with a specific Zooniverse project.

Currently available Programs:

Usage

Install the dependencies:

Either:

Test:

npm run test

⚠️ WARNING: tests don't actually work.

Development mode with livereload:

npm start

When you are done, create a production-ready version of the JS bundle:

npm run build

Alternatively run it via docker & docker-compose

Depends on docker install and docker-compose install

  1. docker-compose build
  2. docker-compose up

Or get a bash console where you can run npm cmds via the built container (ensure step 1 above is done) docker-compose run --rm --service-ports classrooms bash

Run the tests via docker docker-compose run --rm classrooms npm run test

Deployment

Deployment is handled by Github Action. Both staging and production deployment can be run ad hoc in the actions tab as needed if you have the appropriate permissions on the repository.

Staging

On merge to master, a Github Action is triggered to deploy to staging to https://classroom.preview.zooniverse.org.

Production

Production deployments are triggered by an update to which commit the production-release tag is pointed to. This tag should be updated via chat ops and then a Github Action will run that builds and uploads the files to our cloud provider found at https://classroom.zooniverse.org.

External Dependencies

Zooniverse Classrooms requires several external services to work properly.

Zooniverse.org

Our main platform is important for a few things:

Education API

This service manages the Programs listed on Zooniverse Classrooms, manages classrooms and assignments, keeps track of student classifications.

Astronomy-related

Astro 101 requires a few unique services.

Mapping Services

WildCam Darién Lab, WildCam Gorongosa Lab, and Wildwatch Kenya Lab all use mapping services to provide the geographical map interface.

Misc

See the config file for additional service URLs and app IDs.

Development Notes

Here are some very nerdy details about how each project works. Only read this section if something breaks and/or you need a deeper understanding how things work behind the scenes.

About those Programs

Dev Troubleshooting

Q: If I have questions, where should I start looking for answers? A: Try our Stack Overflow page, and search for "classroom" or "education. (Access restricted to Zooniverse users only)

Q: How do I make a WildCam Lab program? A: See https://stackoverflowteams.com/c/zooniverse/questions/339

Credits

This project was built on top of Zooniverse Reduxify, which in turn was developed from the original React Starterify by Granze and used under the MIT License.

License

Copyright 2018 Zooniverse

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.