Certo – The open source platform for digital certificates

4 months ago 16

Certo is a digital certificate platform for issuing, managing, and verifying badges and credentials based on the Open Badges 3.0 specification.

Certo Open Graph Image

  • Issue digital certificates for workshops, courses, events, and projects
  • Verify badge authenticity using the Verifiable Credentials model
  • Share certificates on social platforms like LinkedIn
  • View and manage issued badges
  • Support for the Open Badges 3.0 protocol
certo/ ├── src/ │ ├── backend/ # Strapi backend (TypeScript) │ │ ├── src/ # Backend source (APIs, utils, admin, etc.) │ │ ├── config/ # Strapi configuration │ │ ├── public/ # Static files │ │ ├── types/ # TypeScript types │ │ ├── scripts/ # Utility scripts │ │ ├── database/ # Database config/data │ │ ├── Dockerfile # Backend Docker configuration │ │ ├── package.json # Backend dependencies │ │ ├── tsconfig.json # TypeScript configuration │ │ └── ... # Other backend files │ │ │ ├── frontend/ # Nuxt 3 frontend (Vue 3 + Una UI) │ │ ├── assets/ # Static assets │ │ ├── components/ # Vue components │ │ ├── layouts/ # Nuxt layouts │ │ ├── middleware/ # Nuxt middleware │ │ ├── pages/ # Nuxt pages │ │ ├── plugins/ # Nuxt plugins │ │ ├── stores/ # Pinia stores │ │ ├── types/ # TypeScript types │ │ ├── api/ # API clients │ │ ├── public/ # Public static files │ │ ├── nuxt.config.ts # Nuxt configuration │ │ ├── package.json # Frontend dependencies │ │ ├── tsconfig.json # TypeScript configuration │ │ ├── Dockerfile # Frontend Docker configuration │ │ └── ... # Other frontend files │ │ │ ├── docker-compose.yml # Docker configuration ├── README.md # Project documentation ├── LICENSE # License file └── docs/ # Additional documentation
  • Node.js 18+ and npm
  • Docker and Docker Compose
  • PostgreSQL (included in Docker setup)
  1. Clone the repository:
git clone https://github.com/schrodinger-hat/certo.git cd certo
  1. Create environment variables:

Create a .env file in the root directory with the following variables:

ADMIN_JWT_SECRET=your-admin-jwt-secret JWT_SECRET=your-jwt-secret
  1. Start the Docker containers:

This will start the backend (Strapi), frontend (Nuxt 3), and PostgreSQL database.

  1. Access the applications:

Running Locally (Without Docker)

If you prefer to run the applications locally without Docker:

cd src/backend npm install npm run develop
cd src/frontend npm install npm run dev

The API follows the Open Badges 3.0 specification. You can access the Strapi API documentation at http://localhost:1337/documentation after enabling the Swagger plugin.

Key endpoints:

  • /api/credentials: Credential management
  • /api/profiles: Profile management
  • /api/achievements: Achievement management

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

This project is licensed under the GNU Affero General Public License v3.0 - see the LICENSE file for details.

Read Entire Article