Skip to content

NdibeRaymond/zubhub

 
 

Repository files navigation

CI/CD

ZubHub is a free web platform that expands access to low-cost creative learning and collaboration opportunities globally to children in underserved communities.

It is available for custom use for your school, library, hackerspace, or educational organization. It can be hosted in low or no internet bandwidth locations to create a small virtual hub. These hubs can be interconnected to form an extensive distributed creative education network. You can think of it like Mastodon social-network but specifically intended for showcasing and collaborating on creative educational projects. Or maybe like Hackaday.io, but for children 😃

ZubHub is currently in public beta. A public ZubHub instance is hosted here: https://zubhub.unstructured.studio

Zubhub is designed and developed by Unstructured Studio, an educational non-profit organization incorporated in Canada and India. Want to know more about ZubHub and our feature roadmap? Head to 👉 ZubHub Wiki!

Development

Follow the instructions below to set up your local development environment

Backend

  • Change directory to ./zubhub_backend

  • Run make init to do all the initial setups required and start the server. make init generates the minimal .env file required to run the backend, spins-up all containers defined in the backend docker-compose file, applies all necessary migrations to the database, and creates a default admin user with username and password of dummy and dummy_password respectively.

    Subsequently to start and stop the docker containers, use make start, make stop, or make down. (run make help to see all the available make commands).

  • Visit localhost:8000 on your browser to access the API documentation.

Frontend

  • Create a file named .env in ./zubhub/zubhub_frontend/zubhub directory (same directory with package.json).
  • Copy the content of .env.example and paste into the new .env file.
  • On your terminal/command line, navigate to ./zubhub/zubhub_frontend/zubhub directory.

Using npm

This is advisable for a better development experience.

  • Run npm install to install the dependencies.
  • Run npm start to start the frontend.

Using the Docker Container

Use this when you are done with making your changes and you want to test your code on the Docker container.

  • Run make start to spin up the frontend container.
  • Visit localhost:3000 on your browser to access the frontend.

Deployment

ZubHub is currently deployed on its main website using Github Actions that act as our build and deployment tooling. If you are interested in deploying Zubhub on your own VM for testing and hosting purposes, follow the Single VM Deployment instructions.

Documentation

Contributions

Contributions are welcome! We suggest you first go through the Contribution Guidelines and Code of Conduct and the Feature Roadmap and Ideas we have been working on. Search the Issues to see there are no duplicates or overlaps before filing new feature requests and bugs.

NOTE: If you are interested in the API documentation instead, you need to follow the instructions above about running the backend on your local machine and afterward visit localhost:8000 on your browser to view the API documentation.

Packages

No packages published

Languages

  • JavaScript 74.4%
  • Python 19.7%
  • CSS 2.6%
  • Shell 1.2%
  • HTML 0.9%
  • Dockerfile 0.6%
  • Makefile 0.6%