Skip to content

divy9881/CrowdFundingWeb

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

61 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Crowd Funding Webapp with Neurelo and MongoDB

Inspiration

  • Usually, the owners of the CrowdFunding infrastructure take away a significant share of the funds received by the campaigns in the name of "supporting the services" and "covering deployment and maintenance costs"
  • This Webpage application enables society to raise and fund campaigns without needing to have a middleman/broker to channel the funds to campaign owners
  • Created two clones of the same application one using Neurelo's Javascript SDK which connects to Neurelo's Database Abstraction layer for Database needs and other, a more traditional way, by using Mongoose as an ORM to connect to MongoDB. This is to help compare and contrast among the two alternatives

What it does

  • Institutions or NGO representatives can create and run campaigns for their noble cause in order to raise funds to support their rationale
  • The platform can leverage the massive user base of the Ethereum network to be able to broadcast the campaigns to the users and being able to raise funds
  • It minimizes fund-raising fees(which is a significant share) levied by intermediate platform owners

How to spin-up the server based on Neurelo

# Install Node.js dependencies
$ npm install

# Install nodemon command-line globally on the machine
$ npm install -g nodemon

# Change directory to Neurelo-app
$ cd Neurelo-app

# Spin-up daemonized development server, to enable making code changes and reflect updates to the Frontend/Server in the live
$ npm run start-dev

# Spin-up production server
$ npm run start

How to spin-up the server based on Mongoose

# Install Node.js dependencies
$ npm install

# Change directory to Mongoose-app
$ cd Mongoose-app

# Spin-up daemonized development server, to enable making code changes and reflect updates to the Frontend/Server in the live
$ npm run start-dev

# Spin-up production server
$ npm run start

Code organization and its description

  • Neurelo-app/: Root-level directory for all the files associated with the application based on Neurelo's SDK
  • Neurelo-app/app.js: Entry-point file for the Neurelo-based application
  • Neurelo-app/controller: Directory which constitutes all the controller logic associated with creating projects, commenting on a project, fetch projects by category, fetching information about a specific project, pledging money to a particular project, etc.
  • Neurelo-app/controller/lib: Static JS libraries for frontend
  • Neurelo-app/controller/*.js: Files associated with the controller logic
  • Neurelo-app/view: Directory which constitutes all the files associated with the styling, templates, and assets associated with the webpage
  • Neurelo-app/view/ejs: Embedded Javascript templating files
  • Neurelo-app/view/css: CSS files
  • Neurelo-app/view/assets: Assets associated with the webpages
  • Mongoose-app/: Root-level directory for all the files associated with the application based on Neurelo's SDK
  • Mongoose-app/app.js: Entry-point file for the Mongoose-based application
  • Mongoose-app/model: Directory associated with the models of the MongoDB collections which user should abide to for semantic purposes while using mongoose

How is it built

  • MVC(Model-View-Controller) framework was being adopted to develop the backend and frontend for the Webpage
  • Tech stack includes Node.js(Primary Language), Express.js(REST API framework), Passport.js(Authentication), MongoDB(Primary Database), Neurelo(Database Abstraction layer), Mongoose(ORM as an experimental alternative to Neurelo), EJS(Templating library for frontend)