Absolutely, Karan 🙌
Here's a fully updated and clear README.md for your ICPHub Dapp that your team can use to:
- Understand the project architecture
- See exactly what’s working and why
- Know what remains to build
- Know how to test and run the frontend/backend
- Use a clean checklist to contribute or verify modules
It's production-suitable, cleanly sectioned, and written for developers (your team) who may join or review the project.
A full-stack Dapp built with Next.js, Motoko, and the Internet Computer Protocol, providing GitHub-like features such as repositories, collaboration, commits, and file storage.
| Layer | Tech Used |
|---|---|
| Frontend | Next.js 15 (App Router), Tailwind CSS |
| Authentication | Internet Identity (IC) |
| Backend | DFINITY Canister written in Motoko |
| Identity & Agent Layer | @dfinity/use-auth-client |
| Dev Environment | Local DFX Replica + Internet Identity |
├── icphub-frontend # Next.js frontend (App Router)
├── icphub_backend # Motoko backend (canister logic)
├── declarations/ # auto-generated typing bindings
├── .env.local # environment config
└── README.md # this file- Created scalable Next.js v15 app using App Router
- Boilerplate + Tailwind CSS + dark theme
- Motoko backend initialized (
icphub_backend) - Bootstrap logic for users, repositories, permissions
- Installed all IC SDK packages (
agent,auth-client, etc.) - Created
.env.localand passed values to frontend - Integrated replica host for local and mainnet
-
use-auth-clientused over manualAuthClient
- Login with Internet Identity
- Support for Local II or
https://identity.ic0.app - Displays principal
- Handles session and logout
- Fetched from canister: Owned + Collaborator Repositories
- Shows repositories as cards
- Fallbacks + loading UI
- Dynamic update after repo creation
-
CreateRepoFormcomponent ✅ reusable + styled - Canister call to create repo
- Instant update to repo list on success
-
/repository/[id]dynamic page - View commits, file tree, contributors
- File upload and commit handling
- Add/remove collaborators (access control)
- Upload + store files efficiently
- View stored files in file browser UI
- File change history (commit list)
- Markdown preview rendering (on
.mdextension)
- Toasts (repo created, error, etc.)
- Modal for collaborator invite
- Animated forms, loading skeletons
- Public repo explorer (browse all public repos)
- User profile pages (activity, repos)
- Forking/public clone of open source repos
- CI/CD for frontend (Vercel) and backend (canister deploy)
- Deploy to ICP Mainnet + whitelist canisters
| Feature | Status |
|---|---|
| Internet Identity Auth | ✅ Working |
| Actor logic & canister calls | ✅ Working |
| Repo create + list | ✅ Working |
| Live refresh of repo UI | ✅ Working |
| Canister (backend) logic | ✅ Ready |
| DFX + Internet Identity local | ✅ Working |
| Source structured and typed | ✅ Clean |
| Agent trust via root key | ✅ Trusted |
dfx stop
dfx start --clean --background --host 127.0.0.1:4943dfx deploy internet_identity
dfx deploycd icphub-frontend
cp .env.example .env.local
# Then edit .env.localNEXT_PUBLIC_DFX_LOCALHOST=http://127.0.0.1:4943
NEXT_PUBLIC_II_CANISTER_ID=uxrrr-q7777-77774-qaaaq-cai # Just open an issue or say "Build X next" — and it's done ✅