This app is a client app for project and company registration by CareerZen. It utilizes various libraries and tools such as headlessui/react, hookform/resolvers, pushprotocol/restapi, and more.
βββ .env
βββ .eslintrc.json
βββ .gitignore
βββ README.md
βββ app
β βββ app.tsx
β βββ favicon.ico
β βββ globals.css
β βββ group
β β βββ [address]
β β βββ add-achievement.tsx
β β βββ create-achievement.tsx
β β βββ group-achievements.tsx
β β βββ group-details.tsx
β β βββ group-member.tsx
β β βββ group-recruits.tsx
β β βββ page.tsx
β βββ groups
β β βββ create
β β β βββ group-form.tsx
β β β βββ page.tsx
β β βββ group-list-item.tsx
β β βββ group-list.tsx
β β βββ layout.tsx
β β βββ my-groups.tsx
β β βββ page.tsx
β βββ layout.tsx
β βββ nav-bar.tsx
β βββ nft
β β βββ [contract]
β β β βββ [tokenid]
β β β βββ page.tsx
β β βββ create
β β βββ create-achievement-form.tsx
β β βββ page.tsx
β βββ onboard
β β βββ layout.tsx
β β βββ mint
β β β βββ page.tsx
β β βββ page.tsx
β β βββ profile-form.tsx
β β βββ profile
β β βββ page.tsx
β βββ page.tsx
β βββ profile
β β βββ avatar-nfts.tsx
β β βββ connections.tsx
β β βββ followers.tsx
β β βββ layout.tsx
β β βββ mint-avatar.tsx
β β βββ page.tsx
β β βββ profile-detail-card.tsx
β β βββ profile-details.tsx
β β βββ profile-items.tsx
β β βββ profile-nft-item.tsx
β β βββ select
β β βββ nft-owned.tsx
β β βββ page.tsx
β βββ profiles
β β βββ [id]
β β β βββ layout.tsx
β β β βββ page.tsx
β β βββ list-profiles.tsx
β β βββ page.tsx
β βββ project
β βββ [address]
β β βββ links.tsx
β β βββ page.tsx
β β βββ project-detail.tsx
β β βββ project-info.tsx
β β βββ project-members.tsx
β β βββ project-nfts.tsx
β β βββ project-works.tsx
β β βββ request-nft.tsx
β βββ create
β β βββ page.tsx
β βββ layout.tsx
β βββ page.tsx
β βββ project-item.tsx
βββ components.json
βββ components
β βββ card
β β βββ group-profile-card.tsx
β β βββ member-card.tsx
β β βββ nft-list-item-loading.tsx
β β βββ nft-list-item.tsx
β β βββ pending-profile-card.tsx
β β βββ profile-card.tsx
β βββ connections
β β βββ github.tsx
β βββ extra
β β βββ add-member-item.tsx
β β βββ add-member.tsx
β β βββ chat
β β β βββ chat.tsx
β β β βββ create-push-group.tsx
β β β βββ message-item.tsx
β β β βββ openchat.tsx
β β β βββ push-chat.tsx
β β β βββ push-group-chat.tsx
β β β βββ user-chat.tsx
β β βββ media-uploader.tsx
β β βββ search.tsx
β βββ form
β β βββ request-nft-form.tsx
β βββ loading.json
β βββ loading.tsx
β βββ modal
β β βββ modal-layout.tsx
β β βββ nft-detail-modal.tsx
β β βββ upload-works.tsx
β βββ nft
β β βββ display-nft.tsx
β β βββ pending-nft.tsx
β βββ screens
β β βββ error.tsx
β β βββ loading.tsx
β β βββ no-data.tsx
β β βββ transaction-data.tsx
β βββ theme-provider.tsx
β βββ ui
β β βββ alert.tsx
β β βββ avatar.tsx
β β βββ badge.tsx
β β βββ button.tsx
β β βββ card.tsx
β β βββ command.tsx
β β βββ dialog.tsx
β β βββ form.tsx
β β βββ input.tsx
β β βββ label.tsx
β β βββ layer.tsx
β β βββ popover.tsx
β β βββ radio-group.tsx
β β βββ select.tsx
β β βββ skeleton.tsx
β β βββ switch.tsx
β β βββ table.tsx
β β βββ tabs.tsx
β β βββ textarea.tsx
β β βββ toast.tsx
β β βββ toaster.tsx
β β βββ use-toast.ts
β βββ user
β βββ connect-modal.tsx
β βββ create-profile-modal.tsx
β βββ login.tsx
β βββ modal-layout.tsx
β βββ profile-balance.tsx
β βββ profile-details.tsx
βββ helpers
β βββ mumbai.tsx
β βββ usePush.tsx
βββ lib
β βββ abi
β β βββ group.abi.json
β β βββ groupRegistry.abi.json
β β βββ project.abi.json
β β βββ projectRegistry.abi.json
β βββ constants.ts
β βββ upload.ts
β βββ useFetchData.tsx
β βββ usePushProtocol.tsx
β βββ utils.ts
βββ next.config.js
βββ package-lock.json
βββ package.json
βββ postcss.config.js
βββ public
β βββ icons
β β βββ TikTok=Color.png.zip
β β βββ discord.png
β β βββ dribbble.png
β β βββ ens.png
β β βββ facebook.png
β β βββ farcaster.png
β β βββ figma.png
β β βββ github.png
β β βββ instagram.png
β β βββ lenster.png
β β βββ link.png
β β βββ linkedin.png
β β βββ medium.png
β β βββ nextid.png
β β βββ note.png
β β βββ notion.png
β β βββ pinterest.png
β β βββ snapchat.png
β β βββ spotify.png
β β βββ threads.png
β β βββ tiktok.png
β β βββ tumblr.png
β β βββ twitter.png
β β βββ url.png
β β βββ x.png
β β βββ youtube.png
β βββ images
β β βββ careerzen.png
β β βββ image.png
β β βββ no-item.png
β βββ next.svg
β βββ parts
β β βββ acessary_basic1.png
β β βββ acessary_basic2.png
β β βββ acessary_basic3.png
β β βββ acessary_basic4.png
β β βββ acessary_basic5.png
β β βββ acessary_basic6.png
β β βββ acessary_basic7.png
β β βββ acessary_developer.png
β β βββ background.png
β β βββ cloth_basic.png
β β βββ cloth_hood1.png
β β βββ cloth_hood2.png
β β βββ cloth_hood3.png
β β βββ cloth_hood4.png
β β βββ cloth_jacket.png
β β βββ cloth_poor.png
β β βββ cloth_shirt.png
β β βββ cloth_wind.png
β β βββ eyes1.png
β β βββ eyes2.png
β β βββ eyes3.png
β β βββ eyes4.png
β β βββ face.png
β β βββ hair1.png
β β βββ hair2.png
β β βββ hair3.png
β β βββ hair4.png
β β βββ mouth1.png
β β βββ mouth2.png
β β βββ mouth3.png
β βββ vercel.svg
βββ tailwind.config.js
βββ tailwind.config.ts
βββ tsconfig.json
- app: Main application directory.
- app/group: Contains functionality related to groups.
- app/groups: Handles group-related operations.
- app/nft: Manages non-fungible tokens.
- app/onboard: Handles onboarding and user profiles.
- app/profile: Manages user profiles.
- app/profiles: Handles multiple user profiles.
- app/project: Manages project-related functionalities.
- components: Contains reusable UI components.
- helpers: Contains utility/helper functions.
- headlessui/react: UI components for building accessible and customizable interfaces.
- radix-ui/react-select: A flexible and accessible select component.
- react-hook-form: Performant and flexible forms with easy validation.
- next: A React framework for building server-rendered applications.
- xmtp/react-sdk: SDK for integrating XMTP (Cross-Modal Transfer Protocol) into React applications.
- ethers: A library for interacting with Ethereum.
- lottie-react: Render After Effects animations natively in React.
- tailwindcss: A utility-first CSS framework for rapid UI development.
-
Step 1
-
Step 2
1.Clone the app repository:
git clone https://github.com/Projectzenn/app
2.Install the dependencies with one of the package managers listed below:
pnpm install
bun install
npm install
yarn install
3.Start the development mode:
pnpm dev
bun dev
npm run dev
yarn dev
[Application name](Your App URL)
We heavily rely on the graph for integrating all indexing of on-chain data we build two graph that indexed:
Groups api repository Group Registry Group Regstry Contract link Group Contract - Achievements - Repository link
Project api Projects repositry Projects Registry Project Contract
We use push protocol chats for three different occassions:
- individual chat: for users to chat to eachother based on someone career status
- group chat: chat for people that are in the same group: everyone that hold that token they are able to enter the groupchat and start chatting to each other. This can be used to collectively decide on new achievement design, requirements or the acceptance of new users
- project chat: token based access to the project chat for all the users that hold the ERC721 token of the project.
Within the project the members of the Project are able to setup notification channels for updates about newly added members, new achievements received or work uploaded. The group admin is able to setup the notification based to select or unselect any of the three selections above. If this select will be widely used by the users we are able to set up the some logic for groups to receive notification based on important changes.
Usage We will be using NEXT.id for the verifying the proofs of the github accounts and other social media accounts. We setup our platform, so we can start using next.id service for linking accounts together. When accounts are connected we might see integration based on acquired achievements. We will be analyzing overlapping activities together with skillsets to create a matching based career service, for projects.
For our backend solution we use polybase to integrate offchain requests that needs to be validated by project owners or groups owners first, we do this to reduce the gas usage of users. Most of the gas costs are covered by the contract owners, this provide an easier way for users to start using and testing the application.