Skip to content

Cooperation-org/LinkedCreds-Business

Repository files navigation

LinkedCreds - Business

A secure and efficient platform for creating, managing, and sharing verifiable professional credentials. Built for businesses to showcase Learning and Employment Records (LERs) that are compliant with W3C Verifiable Credential standards.

🌟 Project Overview

LinkedCreds - Business is a Next.js web application that enables organizations to create, validate, and share verifiable credentials for their employees. The platform supports various types of credentials including:

  • Employment Records - Document job roles and responsibilities
  • Performance Reviews - Collaborative performance evaluations
  • Skills & Competencies - Professional skills with supervisor endorsements
  • Volunteer Work - Community service and volunteer activities
  • Identity Verification - Notarized identity verification (coming soon)

Key Features

  • βœ… Verifiable - W3C Verifiable Credential compliant
  • βœ… Shareable - Easy sharing with stakeholders
  • βœ… Tamper-proof - Cryptographically secure
  • βœ… Beautiful Presentation - Professional visual design
  • βœ… User Ownership - Credentials owned by the recipient
  • βœ… Access Control - Users control who can view their credentials
  • βœ… No Degree Required - Focus on skills and experience

Technology Stack

  • Frontend: Next.js 14 with React 18, TypeScript
  • UI Framework: Material-UI (MUI) with Emotion styling
  • Authentication: NextAuth.js with Google OAuth
  • Storage: Google Drive integration for credential storage
  • Blockchain: Ethereum integration with ethers.js
  • Email: SendGrid and Nodemailer for notifications
  • File Processing: PDF.js, Excel processing, QR code generation
  • Development: ESLint, Prettier, TypeScript

πŸš€ Setup Instructions for New Developers

Prerequisites

  • Node.js 18.0 or higher
  • npm, yarn, or pnpm package manager
  • Google Cloud Platform account (for OAuth and Drive API)
  • Git

1. Clone the Repository

git clone https://github.com/Cooperation-org/Linked-Creds-Author-Businees-Enhancement.git
cd Linked-Creds-Author-Businees-Enhancement

2. Install Dependencies

npm install
# or
yarn install
# or
pnpm install

3. Environment Configuration

Create a .env.local file in the root directory based on example.env:

cp example.env .env.local

Configure the following environment variables:

# Google OAuth Configuration
GOOGLE_CLIENT_ID=your_google_client_id
GOOGLE_CLIENT_SECRET=your_google_client_secret

# NextAuth Configuration
NEXTAUTH_SECRET=your_nextauth_secret_key
NEXTAUTH_URL=http://localhost:3000

# Additional environment variables may be required
# Check example.env for the complete list

4. Google Cloud Platform Setup

  1. Create a new project in Google Cloud Console
  2. Enable the following APIs:
    • Google Drive API
    • Google+ API (for OAuth)
  3. Create OAuth 2.0 credentials:
    • Go to "Credentials" β†’ "Create Credentials" β†’ "OAuth 2.0 Client IDs"
    • Set authorized redirect URIs: http://localhost:3000/api/auth/callback/google
    • Copy Client ID and Client Secret to your .env.local

5. Run the Development Server

npm run dev
# or
yarn dev
# or
pnpm dev

Open http://localhost:3000 in your browser to see the application.

6. Code Formatting and Linting

The project includes automated code formatting:

# Format code
npm run format

# Run linter
npm run lint

🀝 Contribution Guidelines

We welcome contributions from the community! Please follow these guidelines:

Getting Started

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/your-feature-name
  3. Make your changes following the coding standards
  4. Test your changes thoroughly
  5. Commit with clear, descriptive messages
  6. Push to your fork and submit a pull request

Coding Standards

  • TypeScript: All new code should be written in TypeScript
  • Formatting: Use Prettier for code formatting (npm run format)
  • Linting: Ensure ESLint passes (npm run lint)
  • Components: Follow React functional component patterns with hooks
  • Styling: Use Material-UI components and emotion for styling
  • File Structure: Follow the existing app directory structure

Pull Request Process

  1. Ensure your PR description clearly describes the problem and solution
  2. Include screenshots for UI changes
  3. Update documentation if necessary
  4. Ensure all tests pass and add new tests for new features
  5. Request review from maintainers
  6. Address any feedback promptly

Code Review Checklist

  • Code follows TypeScript best practices
  • Components are properly typed
  • Error handling is implemented
  • Accessibility considerations are addressed
  • Performance implications are considered
  • Security best practices are followed

Issue Reporting

When reporting issues:

  1. Use a clear, descriptive title
  2. Provide steps to reproduce the problem
  3. Include browser/environment information
  4. Add screenshots if applicable
  5. Check if the issue already exists before creating a new one

πŸ”’ Security

  • All authentication is handled through Google OAuth 2.0
  • Credentials are stored securely in users' Google Drive
  • No personal data is stored on our servers
  • All data transmissions use encrypted HTTPS connections
  • Regular security audits are conducted

For security concerns, please email the maintainers directly rather than creating public issues.

πŸ“„ License Information

Β© 2024 US Chamber of Commerce Foundation

This project is developed by the T3 Innovation Network, a network of leading organizations committed to open infrastructure for Learning and Employment Records.

Open Source License

This project is open source and available under the terms specified in the LICENSE file. The T3 Innovation Network promotes open infrastructure for credential management and verifiable credentials.

Third-Party Licenses

This project uses various open-source libraries and services:

  • Next.js - MIT License
  • React - MIT License
  • Material-UI - MIT License
  • NextAuth.js - ISC License
  • And other dependencies listed in package.json

Usage Rights

  • βœ… Commercial use permitted
  • βœ… Modification permitted
  • βœ… Distribution permitted
  • βœ… Private use permitted

Attribution

When using or modifying this software, please maintain attribution to:

  • US Chamber of Commerce Foundation
  • T3 Innovation Network
  • Original contributors

πŸ”— Related Links

πŸ“ž Support

  • Documentation: Check the /help route in the application
  • Issues: Create an issue in this repository
  • Community: Join discussions in the T3 Innovation Network

πŸ—οΈ Project Structure

β”œβ”€β”€ app/                    # Next.js app directory
β”‚   β”œβ”€β”€ api/               # API routes
β”‚   β”œβ”€β”€ components/        # Reusable React components
β”‚   β”œβ”€β”€ utils/             # Utility functions
β”‚   β”œβ”€β”€ firebase/          # Firebase configuration
β”‚   β”œβ”€β”€ hooks/             # Custom React hooks
β”‚   └── [formType]/        # Dynamic credential form routes
β”œβ”€β”€ public/                # Static assets
β”œβ”€β”€ .github/              # GitHub workflows and templates
└── docs/                 # Additional documentation

Built with ❀️ by the T3 Innovation Network for the future of verifiable credentials.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •