diff --git a/.github/assets/ipc-dashboard-add-a-contact.png b/.github/assets/ipc-dashboard-add-a-contact.png deleted file mode 100644 index e9313798..00000000 Binary files a/.github/assets/ipc-dashboard-add-a-contact.png and /dev/null differ diff --git a/.github/assets/ipc-dashboard-contacts.png b/.github/assets/ipc-dashboard-contacts.png deleted file mode 100644 index 2319b209..00000000 Binary files a/.github/assets/ipc-dashboard-contacts.png and /dev/null differ diff --git a/.github/assets/ipc-dashboard-files-shared.png b/.github/assets/ipc-dashboard-files-shared.png deleted file mode 100644 index 442fecd0..00000000 Binary files a/.github/assets/ipc-dashboard-files-shared.png and /dev/null differ diff --git a/.github/assets/ipc-dashboard-my-profile.png b/.github/assets/ipc-dashboard-my-profile.png deleted file mode 100644 index 771ca396..00000000 Binary files a/.github/assets/ipc-dashboard-my-profile.png and /dev/null differ diff --git a/.github/assets/ipc-dashboard-share-a-file.png b/.github/assets/ipc-dashboard-share-a-file.png deleted file mode 100644 index 89dce481..00000000 Binary files a/.github/assets/ipc-dashboard-share-a-file.png and /dev/null differ diff --git a/.github/assets/ipc-dashboard-update-a-contact.png b/.github/assets/ipc-dashboard-update-a-contact.png deleted file mode 100644 index 683ccf65..00000000 Binary files a/.github/assets/ipc-dashboard-update-a-contact.png and /dev/null differ diff --git a/.github/assets/ipc-dashboard-upload-a-file.png b/.github/assets/ipc-dashboard-upload-a-file.png deleted file mode 100644 index d063194f..00000000 Binary files a/.github/assets/ipc-dashboard-upload-a-file.png and /dev/null differ diff --git a/.github/assets/ipc-dashboard.png b/.github/assets/ipc-dashboard.png deleted file mode 100644 index 543daeff..00000000 Binary files a/.github/assets/ipc-dashboard.png and /dev/null differ diff --git a/.github/assets/ipc-download-a-file.png b/.github/assets/ipc-download-a-file.png deleted file mode 100644 index 827c28b1..00000000 Binary files a/.github/assets/ipc-download-a-file.png and /dev/null differ diff --git a/.github/assets/ipc-file-loading.png b/.github/assets/ipc-file-loading.png deleted file mode 100644 index 6c0341c0..00000000 Binary files a/.github/assets/ipc-file-loading.png and /dev/null differ diff --git a/.github/assets/ipc-graph.png b/.github/assets/ipc-graph.png deleted file mode 100644 index b27d0e4d..00000000 Binary files a/.github/assets/ipc-graph.png and /dev/null differ diff --git a/.github/assets/ipc-post-message-contacts.png b/.github/assets/ipc-post-message-contacts.png deleted file mode 100644 index 617d23c4..00000000 Binary files a/.github/assets/ipc-post-message-contacts.png and /dev/null differ diff --git a/.github/assets/ipc-post-message-files.png b/.github/assets/ipc-post-message-files.png deleted file mode 100644 index 15a05102..00000000 Binary files a/.github/assets/ipc-post-message-files.png and /dev/null differ diff --git a/.github/assets/ipc-post-message.png b/.github/assets/ipc-post-message.png deleted file mode 100644 index a5debaa1..00000000 Binary files a/.github/assets/ipc-post-message.png and /dev/null differ diff --git a/.github/assets/ipc-share-a-file.png b/.github/assets/ipc-share-a-file.png deleted file mode 100644 index 52dfa9dd..00000000 Binary files a/.github/assets/ipc-share-a-file.png and /dev/null differ diff --git a/.github/assets/ipc-storage.png b/.github/assets/ipc-storage.png new file mode 100644 index 00000000..d3b3e560 Binary files /dev/null and b/.github/assets/ipc-storage.png differ diff --git a/.github/assets/ipc-upload-a-file.png b/.github/assets/ipc-upload-a-file.png deleted file mode 100644 index b3cd817d..00000000 Binary files a/.github/assets/ipc-upload-a-file.png and /dev/null differ diff --git a/.github/assets/ipc-upload-a-program.png b/.github/assets/ipc-upload-a-program.png new file mode 100644 index 00000000..3bbf4f09 Binary files /dev/null and b/.github/assets/ipc-upload-a-program.png differ diff --git a/.github/assets/ipc.gif b/.github/assets/ipc.gif deleted file mode 100644 index 2acbf1c1..00000000 Binary files a/.github/assets/ipc.gif and /dev/null differ diff --git a/.github/assets/login.png b/.github/assets/login.png deleted file mode 100644 index e961d64f..00000000 Binary files a/.github/assets/login.png and /dev/null differ diff --git a/.github/assets/signup.png b/.github/assets/signup.png deleted file mode 100644 index 55f97e86..00000000 Binary files a/.github/assets/signup.png and /dev/null differ diff --git a/.github/assets/signupMnemonics.png b/.github/assets/signupMnemonics.png deleted file mode 100644 index c904a514..00000000 Binary files a/.github/assets/signupMnemonics.png and /dev/null differ diff --git a/README.md b/README.md index b8fbcae2..db814d64 100644 --- a/README.md +++ b/README.md @@ -2,15 +2,17 @@ InterPlanetaryCloud (IPC) is a distributed cloud built on top of [Aleph](https://aleph.im/#/), the next generation network of distributed big data applications. +
+ +
+ IPC offers two services : ***Cloud Storage*** A distributed personal file storage and management system plateform, protecting your data. -
- -
+
***Cloud Computing*** @@ -42,109 +44,58 @@ docker build . -t ipc:latest ``` # Run IPC docker image -docker run -p 8080:80 ipc:latest +docker run -p 8080:8080 ipc:latest ``` You are now ready to access to your decentralized cloud at [`http://localhost:8080`](http://localhost:8080) :boom: ! -## Get involved - -You're invited to join this project ! Check out the [contributing guide](./CONTRIBUTING.md). - -If you're interested in how the project is organized at a higher level, please contact the current project manager. - ## Features :dizzy: -
- Home Page - - ![Home Page](.github/assets/home.png) - -
- -
- Signup Page - - ![Signup Page](.github/assets/signup.png) - -
- -
- Signup Page - Mnemonics given - - ![Signup Page Mnemonics](.github/assets/signupMnemonics.png) - -
- -
- Login Page +### Cloud Storage - ![Login Page](.github/assets/login.png) - -
+
- Dashboard - - ![Dashboard](.github/assets/ipc-dashboard.png) - + Upload and use files +

Once files are uploaded on IPC, they are not immutable!
+ You can rename, modify the content or remove them as you want!

- Dashboard - Upload a file - - ![Dashboard Upload](.github/assets/ipc-dashboard-upload-a-file.png) - + Create folders to organize your drive +

Files are great, but virtual folders are also available on IPC to let you organize your files the way you want :start_struck:

- Dashboard - Share a file - -![Dashboard Upload](.github/assets/ipc-dashboard-share-a-file.png) - + Share your files (with access control) +

Files can be shared among contacts with viewer or editor permissions, allowing for collaboration on your drive 🚀

-
- Dashboard - Files shared - -![Dashboard Upload](.github/assets/ipc-dashboard-files-shared.png) - -
+### Cloud Computing +
- Dashboard - Contacts - -![Dashboard Upload](.github/assets/ipc-dashboard-contacts.png) - + Upload and execute simple programs +

Using Aleph VMs, programs listening on port 8080 can be executed if their source code has a size under 1 MB.
+ Large files sould be attached in a secondary volume, which is not a feature implemented on our side... yet :wink:

+ The VMs support binary executables, shell scrips, NodeJS and Python ASGI programs.
+ For further information, here is the [official aleph documentation](https://github.com/aleph-im/aleph-vm/blob/main/tutorials/README.md).

- Dashboard - Add a contact - -![Dashboard Upload](.github/assets/ipc-dashboard-add-a-contact.png) - -
- -
- Dashboard - Update a contact - -![Dashboard Upload](.github/assets/ipc-dashboard-update-a-contact.png) - -
- -
- Dashboard - User's profile - -![Dashboard Upload](.github/assets/ipc-dashboard-my-profile.png) - + Import programs from GitHub +

Uploading programs compressed in an archive is great, but importing it directly from GitHub is way better 🚀
+ GitHub OAuth was implemented in IPC to import public and private repositories.
+ :warning: This feature is only available when running IPC locally as its using the filesystem to clone and zip the repository content

+ ## How does it work? :thinking: ### Technologies 🧑‍💻 - [Typescript](https://www.typescriptlang.org/docs/handbook/typescript-in-5-minutes.html) -- [React](https://reactjs.org/docs/getting-started.html) +- [React](https://reactjs.org/docs/getting-started.html) and [NextJS](https://nextjs.org/) - [Chakra UI](https://chakra-ui.com) ### Security 🛡️ @@ -155,75 +106,12 @@ Every file that you upload will be encrypted thanks to [crypto-js](https://www.n We use [Aleph SDK TS](https://github.com/aleph-im/aleph-sdk-ts#readme). -
- Full overview - - -
- ---- - -- For each file, a random key is generated and the content of the file is encrypted with this key. -- The content is pushed into a store message via the aleph network. -- The hash of the store message and the key are added to the 'Contacts' post message. - -
- Upload a file - - - -
- ---- - -- For each contacts into the 'Post Message - Contacts', the files and contacts are get. -- An occurrence between the address of the user and the contacts is searched. -- For each file found, metadata about the files are retrieved. - -
- Load a file - - - -
- ---- - -- The content is retrieved from the aleph network from his hash. -- The content is decrypted with the key, itself decrypted with the private key of the user. - -
- Download a file - - - -
- ---- - -- The hash and the key are encrypted with the public key of the contact. -- These infos are added to the list of shared files of the contact. - -
- Share a file - - - -
- ---- - -- One post message, with the list of contacts and the list of shared files for each contacts -- The post message contains the info about the contact, his name, address, public key and a list of shared files +## Get involved -
- Post messages +You're invited to join this project ! Check out the [contributing guide](./CONTRIBUTING.md). -
- -
+If you're interested in how the project is organized at a higher level, please contact the current project manager. -
## Our PoC team :ok_hand: @@ -248,7 +136,7 @@ Reviewers : ### September 2021 - April 2022 Developers: -| [
Lucas Louis](https://github.com/lucas-louis) | [
Matéo Viel](https://github.com/lolboysg) +| [
Lucas Louis](https://github.com/lucas-louis) | [
Matéo Viel](https://github.com/0xtekgrinder) | :---: | :---: | Project Managers: diff --git a/pages/dashboard.tsx b/pages/dashboard.tsx index 11ba0dac..c782c5ba 100644 --- a/pages/dashboard.tsx +++ b/pages/dashboard.tsx @@ -78,7 +78,6 @@ const Dashboard = (): JSX.Element => { const loadedConfig = await user.loadConfig(); setConfig(user.config); - console.log(user.config); if (user.config?.theme === 'white' && colorMode !== 'light') toggleColorMode(); if (user.config?.theme === 'gray.800' && colorMode !== 'dark') toggleColorMode(); toast({ title: loadedConfig.message, status: loadedConfig.success ? 'success' : 'error' }); diff --git a/src/components/file/MoveFile.tsx b/src/components/file/MoveFile.tsx index 163f892a..4b18de28 100644 --- a/src/components/file/MoveFile.tsx +++ b/src/components/file/MoveFile.tsx @@ -50,7 +50,6 @@ const MoveFile = ({ file }: MoveFileProps): JSX.Element => {