Skip to content

Commit 7cf2cbd

Browse files
authored
Create Developer_Docs.md
1 parent d144490 commit 7cf2cbd

File tree

1 file changed

+35
-0
lines changed

1 file changed

+35
-0
lines changed

Docs/Developer_Docs.md

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
To structure your project with main.go and the two libraries keycard_link.go and ipfs_link.go, here is a high-level overview of each program and their functionalities:
2+
3+
1. main.go (Located at /src/main.go)
4+
The main.go file will serve as the entry point of the application. It will handle user inputs, coordinate the encryption/decryption processes, and manage the flow between Keycard operations and IPFS interactions.
5+
6+
High-Level Overview:
7+
Import Libraries: Import keycard_link and ipfs_link libraries, along with other necessary Go packages.
8+
Command-Line Interface (CLI): Implement CLI parsing for user inputs (like file paths, commands for encrypt, decrypt, upload, download, etc.).
9+
Coordinate Operations: Depending on the user's input, call appropriate functions from the keycard_link and ipfs_link libraries to perform encryption, decryption, upload to IPFS, and download from IPFS.
10+
Error Handling: Robust error handling for user inputs, file operations, and library function calls.
11+
User Feedback: Provide feedback to the user about the status of operations, errors, or successful completions.
12+
2. keycard_link.go (Located at /src/libb/keycard_link.go)
13+
This library will handle all interactions with the Keycard, including signing operations, key management, and passphrase handling.
14+
15+
High-Level Overview:
16+
Keycard Integration: Functions to communicate with the Keycard for signing and key management.
17+
Sign Data: Function to sign data (or passphrase hash) using the Keycard.
18+
Generate/Retrieve Keys: Functions to generate new keys or retrieve existing keys from the Keycard.
19+
Handle Passphrase: Securely handle passphrase input for Keycard operations.
20+
Error Management: Handle errors specific to Keycard operations and provide meaningful error messages.
21+
3. ipfs_link.go (Located at /src/libb/ipfs_link.go)
22+
This library will manage interactions with IPFS, including uploading encrypted files and retrieving them.
23+
24+
High-Level Overview:
25+
IPFS Client Setup: Initialize and configure the IPFS client.
26+
Upload to IPFS: Function to upload encrypted files to IPFS and return the CID.
27+
Download from IPFS: Function to download files from IPFS using the provided CID.
28+
Handle IPFS Errors: Robust error handling for IPFS operations.
29+
Data Integrity Check: Optionally, implement functionality to verify the integrity of downloaded files.
30+
General Development Approach:
31+
Modularity: Keep the code modular by clearly separating Keycard-related functions and IPFS-related functions in their respective libraries.
32+
Testing: Write unit tests for both libraries to ensure that each function behaves as expected.
33+
Documentation: Document each function in the libraries, explaining its purpose, inputs, outputs, and any side effects.
34+
Security: Pay special attention to security, especially in handling cryptographic materials and sensitive user inputs.
35+
By structuring your application this way, you maintain a clean separation of concerns, where main.go acts as the orchestrator, and the two libraries handle specific functionalities, making the codebase easier to maintain and scale.

0 commit comments

Comments
 (0)