The world of teaching is changing. Learning in the classroom is great, but tons are happening online. Massive open online courses, online courses, online schools, the list goes on. As more education content comes online, more and more people are requesting specific niche subtopics to be taught. There are cases where different institutions want customizable courses that teach a somewhat generic topic in a particular way. The difficulty is, having one educator provide all the possible topics that each institution may want is impractical. However, having multiple educators come together makes it possible for each institution to customize to their needs. Our goal is to develop a system where educators can come together, publish lectures and content about their various areas of expertise and can also use other creators' content to build custom courses for their end viewers.
1. Access to Github Repo
2. Access to our Google Cloud project
3. For these email: james.peralta@ucalgary.ca
- Follow the instructions here: https://cloud.google.com/sdk/docs/quickstarts
- Choose the quickstart depending on which operating system you are using
- Run:
gcloud config set project collaborative-teaching
using a terminal - You are now setup to run the bash scripts in the How to deploy cluster section
1. Run ./scripts/make-master.bash and it will create the first master. Afterwards this master will create the rest of the cluster.
2. Run ./scripts/make-website.bash and it will deploy the website.
3. Navigate to: https://console.cloud.google.com/compute
4. Find the <external_ip> of the virtual machine with "website" as the name
5. Navigate to: http://<external_ip> (e.g http://35.184.240.189/)
6. You can now access the complete system
The files are retrieved in the GlobalContext (line 164) using sockets. Then passed down to the children components using React Context. In files ContentBank, CoursePage and MyFiles, all files are retrieved then filtered if needed.
View the code in app.ts
View the code in GCloud.ts
View the code in Firebase.ts
And, in MCDB.ts
View the code in WorkerTracker.ts
View the code in InstanceChecker.ts
And, in GCloud.ts
View the code in the createReplicas() function in WorkerUtilities.ts
View the code in masterCoordinator.js