Skip to content

Project Requirements

afcelimli edited this page Oct 15, 2018 · 37 revisions

Project Requirements

Glossary

  • User: A person who opens and uses the application or website. Can be registered or unregistered.
  • Registered User: A registered user is a user of a website or mobile program who has previously signed up.
  • Guest User: A person who visits the application or website without signing in.
  • Freelancer: A user who takes projects in order to make money.
  • Client: A user who upload projects to system in order to be done by freelancers.
  • Bid: Offering a particular amount of money for a project.
  • Rating: An action which is done by clients and freelancers in order to evaluate both sides of the project.
  • Comment: Comprehensive evaluation that is done by clients and freelancers in order to give an idea to other users in the system about the client and freelancer.
  • Profile Page: A page that contains various information about a freelancer.
  • Tag: User-defined string which can be used to identify project or search for semantically related projects.
  • Contract: A final agreement between the client and the freelancer after the client chooses a bid for the project. It demonstrates that the freelancer is still interested in the project.
  • Default Profile Segments: Profile parts a freelancer can change. These parts are name, image and introduction letter.

1. Functional Requirements

1.1 User Requirements

1.1.1 Login/Sign up Requirements

  • 1.1.1.1 Users shall be able to sign up with their email, name and password.
  • 1.1.1.2 Registered users shall be able to login with their email and password.

1.1.2 Freelancer Requirements

  • 1.1.2.1 Freelancers shall be able to edit their profile page.
    • 1.1.2.1.1 Freelancers shall be able to add and remove default profile segments.
    • 1.1.2.1.2 Freelancers shall be able to choose the interest areas and tags they want to be notified of.
  • 1.1.2.2 Freelancers shall be able to add a project to their favorites.
  • 1.1.2.3 Freelancers shall be able to rate a project that they have completed.
  • 1.1.2.4 Freelancers shall be able to pin and remove previous contracts to their account.
  • 1.1.2.5 Freelancers shall be able to filter search results down to their certain categories, tags, and budget range.
  • 1.1.2.6 Freelancers shall be able to bid for a project.
  • 1.1.2.7 Freelancers shall be able to inform clients about project completion by using messaging service.
  • 1.1.2.8 Freelancers shall be able to upload their works to system.

1.1.3 Client Requirements

  • 1.1.3.1 Clients shall be able to create project postings.
    • 1.1.3.1.1 Clients shall be able to set a deadline for their project postings.
    • 1.1.3.1.2 Clients shall be able to add tags to their project postings.
      • 1.1.3.1.2.1 Clients shall be able to choose tags from a searchable list of preexisting tags and create new tags(not used before) for their project postings.
    • 1.1.3.1.3 Clients shall be able to choose a budget range for their project postings.
    • 1.1.3.1.4 Clients shall be able to add project details to their postings using a rich text editor.
  • 1.1.3.2 Clients shall be able to propose a project to a certain freelancer.
  • 1.1.3.3 Clients shall be able to decide on any bid placed on their project.
  • 1.1.3.4 Clients shall be able to delete a project.
  • 1.1.3.5 Clients shall be able to contract any freelancer who placed a bid on the project.
  • 1.1.3.6 Clients shall be able to cancel a contract if freelancer misses the deadline.

1.1.4 Feedback Requirements

  • 1.1.4.1 Users shall be able to comment and post feedback on the project.
    • 1.1.4.1.1 Clients shall be able to post feedback for working process, final product and also a text input for detailed elaboration.
    • 1.1.4.1.2 Freelancers shall be able to post feedback for payment, communication, project specifications/description.
  • 1.1.4.2 Users shall be able to rate and comment about users they worked with.

1.1.5 User Profile Requirements

  • 1.1.5.1 Users shall be able to view public profiles of other freelancers and clients.
  • 1.1.5.2 Users shall be able to pin feedbacks to top of their profile.
  • 1.1.5.3 Users shall be able to enable notifications through e-mail to get notified of messages and actions related to them.
  • 1.1.5.4 Users shall be provided a way of account recovery option in case they lose access to their account.

1.1.6 Annotation Requirements

  • 1.1.6.1 Users shall be able to annotate the text in the project description.
  • 1.1.6.2 Users shall be able to annotate the images in the project description.
  • 1.1.6.3 Owner user of an annotation shall be able to edit or delete his/her annotation.

1.2 System Requirements

1.2.1 Bidding Requirements

  • 1.2.1.1 Given bids to a project with their amounts and given dates shall not be visible to any user except the client.
  • 1.2.1.2 The system shall notify the users upon a change in the post details.
  • 1.2.1.3 In case of a change to post details, the post shall be suspended temporarily and be put in moderation queue to confirm the change.

1.2.2 Recommendation Engine Requirements

  • 1.2.2.1 Freelancers shall be given a recommendation of project postings that are related to their previous jobs, fields, interests and tags they prefer.
  • 1.2.2.2 Clients shall be suggested of top and rising freelancers that may be interested in their posting.
  • 1.2.2.3 During project posting creation, a list of successfully completed projects of similar topics shall be presented to the user to help them better specify the scope of the project.

1.2.3 Payment Requirements

  • 1.2.3.1 The advance payment that the client promises shall be withdrawn from their account and be held until both parties agree that the conditions to said payment is met.
  • 1.2.3.2 Client shall not be able to contract with a freelancer if he/she doesn't have enough cash in his/her account.

1.2.4 Search Requirements

  • 1.1.4.1 The system shall support both basic text and semantic search using the keywords user has typed in.
  • 1.1.4.2 The system shall provide filtering mechanism by considering the title and description of the contents.

1.2.5 User Creation Requirements

  • 1.2.5.1 The system shall suggest user to create an account only when they want to commit to creating a project posting.

2. Nonfunctional Requirements

2.1. Security Requirements

  • 2.1.1 The passwords stored in the database of the system shall be encrypted.

2.2. Reliability Requirements

  • 2.2.1 The service shall be implemented with scalability in mind. It shall be able to gracefully handle bursts of user activity using horizontal scaling.

2.3. Performance Requirements

  • 2.3.1 The service shall respond to any operation within two seconds.

2.4. Usability Requirements

  • 2.4.1 All string templates used throughout the service shall be translatable.

2.5. Accessibility Requirements

2.6. Annotation Requirements

2.7. Availability Requirements

  • 2.7.1 The Android application shall support Android 5.0 or upper versions (70% of android devices can be included).
  • 2.7.2 The system shall have a web application which supports the latest version of web browsers.
Clone this wiki locally