NodeJS代写:CSC309 Community Fund


这次是对之前做的Sharing Economy System进行改进,满足下面列出的新需求。


CommunityFund is a crowdfunding platform for raising fund and awareness on community projects. Crowdfunding is the practice of funding a project or venture by raising monetary contributions from a large number of people, typically via the Internet. CrowdFunding has three main actors: the project initiator who proposes the idea and/or project to be funded; individuals or groups who support the idea; and a platform that brings the parties together. Since, crowdfunding leverage the power of internet, anyone from anywhere in the world can fund any project. However, CommunityFund is a community based crowdfunding platform where people would fund community-based projects. So both the funder and the project initiator has to be part of a same community. A community can be based on interests or geographical locations. CrowdFunding is an example of a sharing economy paradigm, a socio-economic system built around the sharing of human and physical resources.

How it Works

CommunityFund is an online service where an individual (or a group) (from now on, the “funder”) who are interested in helping projects within their community can find interesting projects from various project initiators (from now on, the “Initiator”). Initiators, register on the system and provide details of their projects and themselves. Funder, register on the system and search for interesting projects to fund, and if found one, they can give fund to the project. The fund represents either (i) a donation, or (ii) a payment for a product, which will be shipped to the funder at a later time (after successful completion of the project). Initiators has to specify communities for the project; which can be based on location or interests. Funders also need to specify the communities they are interested in and they can only fund any projects within those communities. Once the funder finds a suitable project they can fund the project helping it reaching a specific goal set by the initiators. The community members should form a social network Once a funder or initiator joins a community she is automatically joining a social network that allows her to explore information about the community and the projects within. They can communicate with each other and know more about the project from the people around the project.

Challenges for CommunityFund

Entrepreneurs often struggle to run their project due to lack of fund. At the same time, there are thousands of people who are willing to give money for a cause they believe in. Matching these two parties in a easy and natural way is the main challenge of this project. Again, funder always want to know the impact they have made for the project and the impact of the project within the community. So, providing the ways to measure the impact of the project within the community is an additional challenge. One possible way to measure the impact is to get testimonials (or reviews, reputation systems) from the community members for the project. Students can come up with their own ways for measuring impact.

Your Project

Your team is in charge of designing and developing a fully functional web application for supporting crowdfunding platform. Here is a list of components that your system should support:

  1. User Authentication : Authentication is the process of verifying who a person is. There are a number of methods for doing this, but the most common process is a two way matching process between a public identifier (i.e. a user name or userid) and a private identifier (i.e. a password). On the internet, this is the most common and convenient mechanism.
  2. User Profiling : Each user in your system has a profile. A user profile is a collection of personal data associated to a specific user and it may include information about her identity, her reputation, the type of project she is interested in doing or funding, the professional skills and projects she is interested in, etc.
  3. User Interactions : A user can act either as Funder or an Initiator. As an Initiator she can post a project to raise fund, describe the project milestones/products (if any), and other relevant information. As a Funder she can navigate through the listed projects, give testimonials, or give fund.
  4. Implicit Social Networking : Your system should be the basis for an implicit social network. In this social network users that are within a common community at the same time are automatically considered ‘friends’.
  5. Reputation System : Your system will resemble a reputation system that computes and publishes reputation scores for both (i) funders and (ii) initiators registered on the system. The reputation score of a project is based on ratings that community members provide about a specific project. The reputation score of a initiators is based on ratings that community members provide about the initiator in their social network, based on their chance to interact or collaborate with her. Ratings are typically passed using a simple rating system (like/dislike, star system, 1-10 grade, etc.). Reputation scores are representing a collection of community member’s opinion and can be used by the system to provide recommendations about which project to fund and who are good funder to seek for.
  6. Administrative View : Your system should support an administrative view of the system. Administrators can see aggregate information about the projects, such as, total number of project funded, or average days to reach a fund goal, and other useful analytics.