CertChain is a decentralized certificate management system that leverages blockchain technology to provide secure, verifiable, and tamper-proof digital certificates. The system ensures the authenticity and integrity of certificates through smart contracts and blockchain verification.
- Secure certificate issuance and verification
- Blockchain-based certificate storage
- Smart contract integration
- User authentication and authorization
- Admin dashboard for certificate management
- Password reset functionality via https://resetpassword.karadurbanbank.com/
- Frontend: React.js with TypeScript
- Backend: Node.js with Express
- Database: MongoDB
- Blockchain: Ethereum
- Smart Contracts: Solidity
- Authentication: JWT
- Node.js (v14 or higher)
- MongoDB
- MetaMask or other Web3 wallet
- npm or yarn package manager
- Clone the repository:
git clone [repository-url]
cd CertChain- Install dependencies:
# Install backend dependencies
cd backend
npm install
# Install frontend dependencies
npm install-
Configure environment variables:
- Create
.envfile in the backend directory - Add necessary environment variables (see
.env.example)
- Create
-
Start the development servers:
# Start backend server
cd backend
npm run dev
# Start frontend server
cd frontend
npm startCertChain/
├── backend/
│ ├── controllers/
│ ├── models/
│ ├── routes/
│ ├── middleware/
│ ├── utils/
│ └── config/
├── frontend/
│ ├── src/
│ │ ├── components/
│ │ ├── pages/
│ │ ├── contexts/
│ │ ├── services/
│ │ └── utils/
│ └── public/
└── smart-contracts/
└── contracts/
- POST
/api/auth/signup- User registration - POST
/api/auth/login- User login - POST
/api/auth/forgot-password- Request password reset - POST
/api/auth/reset-password- Reset password
- GET
/api/certificates- Get all certificates - POST
/api/certificates- Issue new certificate - GET
/api/certificates/:id- Get certificate by ID - PUT
/api/certificates/:id- Update certificate - DELETE
/api/certificates/:id- Delete certificate
The system uses smart contracts for:
- Certificate issuance
- Certificate verification
- Ownership management
- Access control
- JWT-based authentication
- Password hashing
- Role-based access control
- Blockchain verification
- Secure password reset flow
- Ethereum Foundation
- OpenZeppelin
- React.js community
- Node.js community