Update README.md

Update of Features and Repo structure sections
This commit is contained in:
mildred 2024-01-23 19:40:27 +00:00
parent 0f21807092
commit 81fd0a4e17

200
README.md
View file

@ -1,100 +1,100 @@
# IdHub # IdHub
IdHub is a Django-based project designed to provide efficient identity management solutions. This README offers an overview of the project, setup instructions, and additional resources. IdHub is a Django-based project designed to provide efficient identity management solutions.This README offers an overview of the project, setup instructions, and additional resources.
## About IdHub ## About IdHub
IdHub aims to streamline the process of identity management by leveraging the power and flexibility of Django. It's ideal for organizations looking for a reliable, scalable, and customizable identity management system. The idHub service, which facilitates organisations (acting as issuer or verifiers) and beneficiaries (acting as subjects and credential holders) to issue, exchange, and verify data in the form of verifiable credentials for credible and flexible access to benefits or services.
## Features ## Features
- **Admin Dashboard**: A user-friendly admin panel for managing identities. The main modules components it provides:
- **Identity Verification**: Tools and interfaces to verify and manage identities. - **Admin Dashboard**: A user-friendly admin panel that enables administrator to manage users and roles, handle aspects such as the creation of organisational Decentralized Identifiers (DIDs), credentials issued by the organisation, and upload the information for issuance of credentials to users (including credential schemas and data).
- ... - **User Dashboard**: A user-friendly user panel equips users to manage their personal information, create an identity (DID), request the issuance of a credential, and present these credentials to entities within our user communitity. This module operates as a user wallet.
The application's backend is responsible for issuing credentials upun user request through the user module. Meanwhile, the idHub can function as a credential verifier and engage in dialogues with other idHub instances that operate as user wallets by implementing a OIDC4VP based dialog. Consequently, the idHub is multifaceted, capable of functioning as an issuer, wallet or verifier.
## Getting Started - **OIDC4VP module**: Module where all oidc4vp flows reside for credential presentation.
### Prerequisites ## Getting Started
- Python 3.x ### Prerequisites
### Installation - Python 3.x
1. Clone the repository: ### Installation
```
git clone [FINAL GitHub LINK] 1. Clone this repository:
``` ```
2. (Recommended but optional) Create and activate a virtual environment: git clone [FINAL IdHub repository LINK]
``` ```
python -m venv venv 2. (Recommended but optional) Create and activate a virtual environment:
source venv/bin/activate ```
``` python -m venv venv
3. Install the required packages: source venv/bin/activate
``` ```
pip install -r requirements.txt 3. Install the required packages:
``` ```
4. Run migrations: pip install -r requirements.txt
``` ```
python manage.py migrate 4. Run migrations:
``` ```
5. Optionally you can install a minumum data set: python manage.py migrate
``` ```
python manage.py initial_datas 5. Optionally you can install a minumum data set:
``` ```
6. Start the development server: python manage.py initial_datas
``` ```
python manage.py runserver 6. Start the development server:
``` ```
python manage.py runserver
### Usage ```
Access the application at `http://localhost:8000`. ### Usage
### Running Tests Access the application at `http://localhost:8000`.
IdHub uses Django's built-in testing tools to ensure the reliability and performance of the application. Follow these steps to run the tests: ### Running Tests
Execute the following command in your project directory to run all tests: IdHub uses Django's built-in testing tools to ensure the reliability and performance of the application. Follow these steps to run the tests:
``` Execute the following command in your project directory to run all tests:
python manage.py test
``` ```
python manage.py test
This command will discover and run all tests in the `tests` directories of the application. ```
This command will discover and run all tests in the `tests` directories of the application.
## Repository Structure
IdHub's repository is organized into several directories, each serving a specific purpose in the project: ## Repository Structure
- **examples**: ??? IdHub's repository is organized into several directories, each serving a specific purpose in the project:
- **idhub**: The core directory of the IdHub project. It includes the main functionality of this Django project. - **examples**: Examples of different data files used in some functionalities.
- **idhub_auth**: This directory is dedicated to the authentication system of IdHub. It includes modules and configurations for user authentication and authorization. - **idhub**: The core directory of the IdHub project (templates, forms, views, models, etc.). It includes the main functionality of this Django project.
- **locale**: Contains localization files for IdHub, enabling support for multiple languages. It's crucial for making the project accessible to a global audience. - **idhub_auth**: This directory contains the module where the users and the data encryption/decryption system are defined.
- **oidc4vp**: This folder is specific to OpenID Connect for Verifiable Presentations (OIDC4VP) integration, a protocol for handling verifiable credentials in a standardized way. - **locale**: Contains localization files for IdHub (po and mo files for translations), enabling support for multiple languages.
- **promotion**: Contains an example application for a verification portal. - **oidc4vp**: Module where all oidc4vp flows (implementation of the credential's presentation dialog) reside.
- **schemas**: Contains verifiable credential schemas used within IdHub. These include some schemas from the [schemas repository], which are copied here to avoid losing access in case of encountering connection problems. - **promotion**: Example module showing how to create a portal that initializes the oidc4vp flow.
- **ssikit_example_src**: Source code examples demonstrating the usage of SSI (Self-Sovereign Identity) Kit, providing insights into how IdHub integrates with SSI concepts. - **schemas**: Contains verifiable credential schemas used within IdHub for a preload without having to go to the original source.
- **trustchain_idhub**: This folder includes settings and configurations for the Django project. - **trustchain_idhub**: This folder includes settings and configurations for the Django project. It is the entry point of Django, where the global variables, the startup files and the file that defines the endpoints are defined.
- **utils**: A utility folder containing various helper scripts and tools that aid in the development and maintenance of the IdHub project. - **utils**: A utility folder containing various helper scripts and tools developed by us but that are independent of idHub. Even so, IdHub uses them and needs them (examples of this are the validation system for the data that is loades by excel, or the system that manages the sskit)
## Documentation ## Documentation
For detailed documentation, visit [Documentation Link]. For detailed documentation, visit [Documentation Link](http://idhub.pangea.org/help/).
## License ## License
This project is licensed under the GNU Affero General Public License - see the [LICENSE.md](LICENSE.md) file for details. This project is licensed under the GNU Affero General Public License - see the [LICENSE.md](LICENSE.md) file for details.
## Further Reading ## Further Reading
- ... - ...