MSAcademy-CrowdfundingProject - Group 4
You have been given the opportunity to work for a big client. The task at hand is to create a crowdfunding platform (like KickStarter or Indiegogo) for the Web where one, the Project Creator, could share their wildest idea and others, the backers, could contribute financially to see it happening.
The Project Creator promotes his idea through a custom project profile page where he can add a project title, Description, photos, videos and post status updates, whenever necessary.
In addition to that, the Project Creator should be able to track the project's financial progress through his Dashboard page. To motivate backers to contribute, he/she should offer a number of funding packages where each package is accompanied by a reward to the backer.
A backer should be able to browse all Projects and invest on any one he wishes. He can find Projects either through plain text search or by browsing by category, and he should be able to view the site's trending projects. He/she should also be able to view the projects he funded and observe their progress.
Your client wishes to create a proof of concept of the application, with separate screens for the Project Creator and the backer (authorization not required for the proof of concept), enabling him to showcase it's usage to Angel Investors to receive funding.
- Create a new project (Project creator)
- Add reward packages (Project creator)
- Fund a project by selecting a reward package (backer)
- View list of available projects (backer)
- View Project's page (backer & Project Creator)
- View a list of funded projects (backer & Project Creator)
- Provide a REST API allowing third party integrations.
As always, the project's source code must be delivered on github, and all coding and architectural standards discussed in classroom applied.
- Define a Model
- Persist Model (using EF Core)
- Define project's Services in Interfaces. Establish project's functionality.
- Expose Services to a MVC project
- Use EF Core
- Use DI
- USE CODING CONVENTIONS
- Use Ajax for all form submissions
- Use Bootstrap for UI elements
- Handle double clicks in forms
- Use Javascript coding conventions
- Display validation messages
- Each team member's contribution should be clearly depicted with commits
- Provide clear and descriptive commit messages
- Use branches for each features development
Happy Coding :)