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:
- Astro 101 with Galaxy Zoo
- Has materials and tools for introductory astronomy students.
- Associated projects: Galaxy Zoo 101 and Hubble's Law
- WildCam Darien Lab
- Educational tool for students and explorers interested in learning about ecology, using real world camera trap data from the jungles of Panama.
- Heavy focus on using geographical map data.
- Associated project: WildCam Darien
- WildCam Gorongosa Lab (WIP)
Install the dependencies:
npm install
Test:
npm run test
Development mode with livereload:
npm run start
When you are done, create a production-ready version of the JS bundle:
npm run build
Depends on docker install and docker-compose install
docker-compose build
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 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.
On merge to master, a Github Action is triggered to deploy to staging to https://classroom.preview.zooniverse.org
.
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
.
Core:
- Zooniverse Education API service - this backend server is the backbone that manages classrooms, assignments, user roles, etc.
- Panoptes App setup - standard requirement for allowing Zooniverse users to login.
See the config file for the service URLs and app IDs.
All Programs:
- Zooniverse project with classroom setup - required to allow students to submit classifications as part of a classroom.
- TODO: This requires more documentation.
Astronomy Programs:
- Caesar - used for exporting the data generated by a classroom.
- Google API setup - required for integration with Google Drive.
WildCam Programs:
- Carto map database - used by WildCam-type Programs for accessing geographical map data.
- Various mapping services - use by WildCam-type Programs for providing the visual map layers.
See the config file of a sample WildCam-type Program for an idea of the mapping services used.
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.
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.