Summit 2023 UI application has been developed using ReactJS, MUI, Redux and i18n. This frontend application features mainly Category, Nominee and Leaderboard pages by interfacing with our backend services, through a Rest API. The application also integrates Web3 component Cardano Connect with Wallet for user registration.
You can visit now the website that hosts this app using this link.
- Node.js 18.x LTS
In the project directory, you can run:
This will install all packages in node_modules folder.
Before running the app you need to create a .env file by executing the following command:
cp .env.example .env
Runs the app in the development mode.
Open http://localhost:3000 to view it in the browser.
The page will reload if you make edits.
You will also see any lint errors in the console.
Builds the app for production to the build
folder.
It correctly bundles React in production mode and optimizes the build for the best performance.
The build is minified and the filenames include the hashes.
Your app is ready to be deployed!
To run the backend services you will need to open multiple terminals and follow this instructions:
Terminal 1 - Data follower app on port: 9090
cd cf-cardano-ballot/backend-services/voting-ledger-follower-app
./gradlew bootRun
Terminal 2 - Voting app on port: 9091
cd cf-cardano-ballot/backend-services/voting-app
./gradlew bootRun
Terminal 3 - Vote verification app on port: 9092
cd cf-cardano-ballot/backend-services/voting-verification-app
./gradlew bootRun
Terminal 4 - User verification app on port: 9093
To run this service you need to provide your own AWS credentials to enable the sms verification service.
export AWS_SNS_ACCESS_KEY_ID=...
export AWS_SNS_SECRET_ACCESS_KEY=...
cd cf-cardano-ballot/backend-services/user-verification-service
./gradlew bootRun
The UI application populates the content (Presentation Names, Urls, Description, Links etc...) from a JSON by mapping Category ids and Proposal ids which were generated by Backend service.
The current summit-2023
application's content is fetching from this JSON.