Skip to content

Latest commit

 

History

History
159 lines (96 loc) · 9.66 KB

README.md

File metadata and controls

159 lines (96 loc) · 9.66 KB

Communa - Frontend

Communa is a web3 platform for freelancing that connects businesses with talented professionals worldwide, making remote work more convenient than ever before.

Development

Clonning and running on a local machine

git clone [email protected]:communa/frontend.git
npm install
yarn dev

Running on a server with PM2

pm2 start npm --name "communa-frontend" -- start

Deployment

cap deploy:setup
cap deploy production

Intro

The document provides technical recommendations for frontend for communa platform as the key interface both for freelancers and businesses to interact with the underlying services of the Communa network.

UI/UX

We see communna intuitive and user-friendly place for many. The website should be easy to navigate and understand, with clear and concise labeling of all features and functions. The UI should be responsive and optimized for all devices, including desktops, laptops, tablets, and smartphones. The design should be modern and visually appealing, with a consistent color scheme and typography throughout the platform.

The user experience of the platform should be seamless and efficient giving the users the required simplicity to complete tasks without any confusion or frustration. The platform should provide clear and concise instructions for all actions and should offer helpful suggestions and recommendations to users based on their preferences and behavior. The UX should be designed to encourage engagement and retention, with features such as gamification and social sharing.

Homepage

Homepage will provide a clear overview of features and benefits, as well as showcase some of the top freelancers and projects available on the platform.

Authentication

Web3 authentication with Metamask offers several benefits, including enhanced security, convenience, and privacy. Metamask uses a secure wallet to store private keys, ensuring that users' sensitive information is protected from hackers and other malicious actors.

Scenarios:

  • Users should be able to create an account and log in to the website with Metamask

Registration and Login

The frontend will provide a user-friendly interface for users to register and log in to the website. The registration process will require users to provide basic information such as name, email, and password.

Empty profiles shall not be displayed in search results or directly accessed from a browser.

  • The onboarding process should be user-friendly and intuitive.
  • The registration process should include basic information such as name, email, and password.
  • Users should be able to complete their profile with information such as their skills, experience, and portfolio.
  • The website should provide guidance and tips to help users create compelling profile.

Profiles

The profile section is where users can view and edit their own profile information, including their skills, experience, hourly rate, and availability. Users should also be able to view their project and proposal history, as well as any feedback or ratings they have received from other users.

Profiles - Listing and Searching

The freelancer listings section is where users can view all the available freelancers on the website. Each freelancer listing should include a brief description of their skills and experience, as well as their hourly rate and availability. Users should be able to click on a freelancer listing to view more details and hire them for a project.

Profiles - Dashboard

Communa should provide detailed profiles for both freelancers and clients. Freelancer profiles should include information such as their skills, experience, portfolio, ratings, and reviews from previous clients. Client profiles should include information such as their project history, budget, and ratings and reviews of freelancers they have worked with. Profiles should be easy to navigate and visually appealing, with clear and concise information displayed in an organized manner.

Scenarios:

  • Users should have a dashboard where they can view their profiles, jobs, bids, messages, and notifications.
  • The dashboard should have basic analytics and insights into the user's performance and earnings.

Profiles - Freelancer Details

The freelancer details page is where users can view all the details of a specific freelancer, including their skills, experience, hourly rate, and availability. Users should be able to hire the freelancer directly from this page.

Projects

The project section is where users can view all the available projects on the website. Each project listing should include a brief description of the project, the budget, the deadline, and any other relevant details. Users should be able to click on a project listing to view more details and submit a proposal.

Project - Listing and Searching

Communa should provide robust search and filtering capabilities to help users find the right freelancers or projects. Users should be able to search by keywords, skills, location, and other relevant criteria. The search results should be displayed in a clear and organized manner, with relevant information such as ratings, reviews, and pricing displayed prominently. Users should also be able to filter their search results based on various criteria, such as budget, experience level, and availability.

  • Users should be able to search for jobs based on keywords, skills, and other criteria.
  • The website should provide a list of recommended jobs based on the user's profile and search history.
  • Users should be able to bid on jobs and communicate with clients through the website.

Project - Posting

As a client, I should be able to post a job on the website, and access and edit jobs I’ve posted.

  • Users should be able to post jobs on the website.
  • The job posting form should include fields for job title, rate, description, and skills required.
  • Users should be able to preview their job postings before submitting them.

Refs:

Project - Proposal submission

Proposals play a crucial role in securing projects on Communa. Proposals serve as the initial point of contact with potential clients, and it's essential to create a proposal that captures their attention. A well-crafted and comprehensive proposal is the key element for successful communication.

  • Users can create and submit proposals for projects
  • Proposals can include attachments such as portfolios or resumes
  • Proposals can be edited or withdrawn before the project is awarded
  • Proposals can be sorted and filtered by various criteria such as date submitted or project category

Project - Time Tracking

The time tracking feature of the platform will allow users to track their time spent on different tasks and projects using Communa TimeTracker application.

Time tracking should provide options to generate reports on their time logs, projects. Users will be able to filter the reports by date range, project. The platform will also have a feature that allows users to export the reports in different formats such as CSV and PDF.

  • Users can track time spent on projects using a built-in timer
  • Time tracking can be paused and resumed as needed
  • Time tracking data can be exported for invoicing or reporting purposes
  • Users can set hourly rates for different projects or clients

Messaging and Notifications

The messaging section is where users can communicate with each other directly through the website. This section should be designed to be user-friendly and intuitive, with clear options for sending and receiving messages.

The platform should provide robust messaging and communication capabilities to facilitate communication between freelancers and clients. Users should be able to send and receive messages, share files and documents. The messaging system should be secure and encrypted and should provide notifications and alerts to users when they receive new messages or updates.

  • The website should have a messaging system to allow users to communicate with each other.
  • Users should receive notifications when they receive a message, a job is posted, or a bid is accepted.
  • The website should provide a notification center where users can view all their notifications.

Payments and Invoicing

The payment section is where users can manage their payment information and invoices.

The platform should provide management system to facilitate payments and invoicing between freelancers and clients. The payment system should be integrated with blockchain networks like Ethereum to support wider range of methods. Communa should also provide transparent and detailed transaction histories for both freelancers and clients, with clear information on fees, taxes, and other relevant details.

  • Users see sent and receive payments on platform
  • Payments shall be made using stable-coins supporting most popular networks
  • Invoices can be generated automatically based on time tracking data

Help and Support

Communa should provide comprehensive support and help resources to users. Users should be able to easily access help articles, FAQs, and tutorials, and should be able to contact customer support directly through the website. The support system should be responsive and helpful, with clear and concise information provided in a timely manner.

References