Certo is a digital certificate platform for issuing, managing, and verifying badges and credentials based on the Open Badges 3.0 specification.
- 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)
- Clone the repository:
git clone https://github.com/schrodinger-hat/certo.git
cd certo- 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
- Start the Docker containers:
docker-compose up -dThis will start the backend (Strapi), frontend (Nuxt 3), and PostgreSQL database.
- Access the applications:
- Backend (Strapi Admin): http://localhost:1337/admin
- Frontend (Nuxt 3): http://localhost:3000
If you prefer to run the applications locally without Docker:
cd src/backend
npm install
npm run developcd src/frontend
npm install
npm run devThe 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.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the GNU Affero General Public License v3.0 - see the LICENSE file for details.
- Open Badges 3.0 Specification
- Verifiable Credentials Data Model
- Strapi
- Nuxt 3
- Una UI
- Schrödinger Hat
Miki Lombardi 💻 Maintainer |
Patrick Raedler 💻 Maintainer |
Marco Giuliotti 💻 Maintainer |
