# Architecture

The architecture of the EduX Web3 Auditing Ecosystem is designed to facilitate learning, collaboration, and professional growth in the Web3 security and auditing domain. It seamlessly integrates multiple components to provide a scalable, secure, and user-friendly platform.

{% hint style="info" %}
Want to learn more about the blockchain we work at?? Head over to the [docs](https://devdocs.opencampus.xyz/) of EDU Chain.
{% endhint %}

## **High-Level Architecture**

**Frontend**

* **Frameworks & Libraries**: ReactJS, TypeScript, TailwindCSS
* **Authentication**: Open Campus ID (OCID), integrated with RPC URLs for seamless wallet-based authentication
* **Features**:
  * Gamified dashboards for bug bounties and project management
  * Real-time discussions and mentorship session booking (Coming Soon)
  * Responsive UI for an intuitive user experience

**Backend**

* **Technology**: NodeJS with Express
* **Storage**: MongoDB for structured data, IPFS for decentralized file storage
* **Key Functions**:
  * User management and session handling
  * REST APIs and GraphQL for frontend-backend communication
  * Smart contract interaction layer
  * Payment processing for blockchain-based mentorship sessions

**Blockchain Layer**

* **Smart Contracts**:
  * Written in Solidity (v0.8.26)
  * Deployed on EDU chain
  * Handles bug bounty submissions, reward distribution, and mentorship payments
* **Frameworks**: Hardhat for development, testing, and deployment

**Database**

* **Primary Storage**: MongoDB for user profiles, leaderboard data, and discussion threads
* **Decentralized Storage**: IPFS for secure storage of project files and auditing reports

**Authentication**

* **Web3 Integration**: Open Campus ID (OCID) and wallet-based authentication via MetaMask

**Real-Time Communication**

* **Coming Soon**: Real-time discussions, notifications, and mentorship session scheduling via Socket.IO, with calendar system integration for managing availability.

#### Architecture Diagrams:

<figure><img src="/files/KJ6dtrrNKOc7lRA4SkB5" alt=""><figcaption><p>Architecture Diagram</p></figcaption></figure>

<figure><img src="/files/va3QFtz2R8CukVLN3teR" alt=""><figcaption><p>State Chart</p></figcaption></figure>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://edux.gitbook.io/edux-docs/getting-started/introduction-to-edux/quickstart.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
