e-MergeCampus is a comprehensive and innovative platform designed to streamline and enhance various essential services within a college campus. By leveraging decentralized technologies such as Ethereum blockchain and IPFS, e-MergeCampus ensures data security, transparency, and efficiency in managing campus resources and interactions.
Library
- EBooks
Students can download books(in pdf) available in their college library according to their choice. They also get reference to every books in Google Books. - Class Notes
Here anyone can upload their class notes but only the uploader of that class note and librarian can remove them. Details of the notes can also be found like - Stream, Faculty Name,Class Date, upload date, name of the uploader.
Report option is also available (to all, other than the uploader), which will allow the librarian to maintain discipline. - Librarian
Here college Librarian will be able to upload books and info-book name, book author, description about them in pdf format and can remove them as well.
Foodiegenie
- Students' section
Here Students will be able to see the available cuisines/food items in the college canteen, where they will be able to place orders and pay, set their delivery location (hostel or canteen). - Owner's section
The Owner of the canteen will be able to perform these functions: add new food items,change the price, remove any item, change the availability of any food, set the item category and image. - Previous Orders
Owner and Students can keep a track on whatever they have ordered which includes ethereum address of the customer, order amount, ordered item name, ordered quantity, delivery location, room or table no, delivery status, order rating (by the customer), etc.
PGConnect
- Students' section
Students search pg options here nearest to the college. They can choose a perfect agreement among wide variety of options according to their needs. They have the power to dislike any service once they used it. - Landlords' section
Landlords provide details about their offerings here. Details include room name, room address, rent per month, one time Security deposit. - Transactions
All details regarding agreements and rent payment are listed here to aviod any sort of confusion between landlords and students.
College Admin's section
The Admin of the college can change the current librarian if needed, PGConnect commision ,current Foodiegenie owner and Foodiegenie commission.
The prospect of the business model of this project depends on the fact that the college authorities (college admin, in this case) get a percent of the amounts transacted as commission (both in PGConnect and Foodiegenie).
- Fork and clone this repo in local machine.
- Run
npm install
in the in the project directory. This would install all dependencies. - Download Ganache from the official website. Also add & setup MetaMask in browser. We recommend you to follow this.
- Install
truffle
by following this. - Start Ganache, create a
New Workspace
, and add your project by going to thesrc
directory and selectingtruffle-config.js
. After this, save this workspace. This would start Ganache with 10 ethereum accounts, containg 100 ether each. - Now go to
src
directory, open a terminal and runtruffle migrate --reset
. This would compile the smart contracts and deploy the contracts in the local blockchain (Ganache). - Open MetaMask in your browser and select the network to
custom RPC
. Here, add a new network. For this, the RPC URL should be the URL shown in your Ganache. The chain id would be the same as the network id in Ganache. - Now select the first account shown in Ganache, and click on the
key
icon. This would bring up the private key for the account. Copy this private key. Now go to MetaMask (the network should be the custom network you just created), and click onimport account
. Paste the previously copied private key and and click on import. - MetaMask now should be showing the address of the first Ganache account with 100 ether in it. This is your college admin account. The one who deploys the contracts in always the admin.
- Run
npm start
in the main project directory. This would start the frontend.
- Import some more accounts from Ganache into MetaMask. Go to
Admin
section in the navbar of the web-application. Now, make one of the newly imported accounts the librarian. Also change the Canteen Owner. (This step is optional, it's just a feature to change the librarian and canteen owner, in case the college authorities want to authorize someone else for managing these sections.) - Now the respective addresses can perform the desired transactions. The addresses (other than admin, librarian and canteen owner) can be considered as students.
Try changing accounts in MetaMask (and then reloading the page) to see which account is authorized to perform the transactions in the page. If an account isn't authorized to perform a certain transaction, the respective button will appear disabled.
- Ethereum Blockchain
- IPFS
- Web browser extension Metamask (recommended) or Nifty wallet.
- Truffle
- React (Html5, Css3, Bootstrap v5.1)
- Node.js (web3.js)
- Ganache
- The previous technologies used during development
- Front-end deployment: Netlify
- Back-end deployment: Infura