VOT uses allows usersto autheticate using their wallet or email, which registers each users and allow them to access the website. There are three categories of users on VOT - 'the Election Creators(Admins)', 'the Election Contestants' and the 'Voters'. Each users has the ability to be in any of these categories but there are rules attached to it:
- When an election is created, the election creator cannot contest or vote in the election - this is to ensure fairness and avoid activities that annoys the algorithm and users.
- Election contestants are allowed to contest in any election they desire, but can not vote for any election that they register as a contestant for.
- Users has the ability to join any election as a contestant and also be a voter in another election entirely.
- Voters are free as a bird.
VOT charges per election created and per election you apply for as a contestant, this is to ensure vain use of the website. This is acheived through the aid of Filecoin as the native base token for transaction. But again, voters are free as a bird.
VOT stores each election data - contestant information(formated from the admin requirements), election results, every data of each election created and more... These data are being stored on the Recall Blockchain and Akave blockchain and can be queried or download by anyone interested in any information ot result of a specific election through the election ID that will be generated.
This project contains the whole code for VOT project and this utilises Langchain AI, Recall Blockchain Storage, Akave Blockchain Storage and Filecoin Ecosystem together to acheive the goal of decentralising election system. Each part of this project has been structured seperately to show how we utilised each of the tecnologies:
- How we integrated the Recall feature to establish direct data storage integration
- Langchain chat model with the aid of OpenAI to take users input data and convert it to a .txt file that will be automatically uploaded to Akave blockchain
- Akave - which serves as the base model for uploading and downloading elections and users data
- Filecoin - this served as the token(currency) that we used for charging the election creators and election contestants
- How we utilised each storage ecosystem with the Langchain AI.
- Clone the project
git clone https://github.com/Nailer/VOT.git - Run
pnpm installto install the necessary packages - Run
pnpm run devto start the UI of the website. - Run
pnpm tsx lib/LangChainServer,pnpm tsx lib/agent.ts
- Note: Make sure you have the necessary environment set for proper deployment and interaction with VOT project
- Ensure that your OpenAI key has enough credit to troubleshoot
billing errorandtoo many request error
Please if you find any bug or want to collaborate on VOT, you can update the section that you want to add your contribution and please feel free to submit a pull request for a review. Thanks.
- Unfinished frontend pages - Create Election page, Join Election page...
- Incomplete Filecoin transaction integration per action made relative to election activities.
- Recall autonomous uploading of file through AI.
- Integrate ElizaOS AI for seamless direct posting to social media directly from VOT for campaign advantage to election contestants.
- Implementation of signature binding to restrict cheating by creating multiple accounts from their wallets.
If you are feeling generous, you can buy me a coffee here