The DigiPol Voting App (temporary name for now) will allow Australian Voters to be able to vote on current issues and bills within the political landscape.
- Bills will be the legislation proposals put forth in Parliament, worded as is.
- Issues will be generated according to public interest and contemporary topics as they arise.
It will collate voting results and show users the results of their electorates voting on bills. It will allow them to send an automatically generated email to their elected representative, as well as post the results out onto various social media.
- Issues Page - list of issues generated, sortable by date, popularity, controversiality(?)
- Bills Page - list of bills sortable by house, date, progress
- Voting Page - full description/links and voting buttons
- Login Page - email - password
- Results Page - list of horizontal bar graphs - 1 for each electorate
- Verification/Profile Page - AEC details, electorate details, representatives and voting patterns, join Flux button, link profiles (google/fb/ig)
The UI/UX is based on the Flutter Framework that uses the Dart Programming Language (this repo). The majority of development is in the lib
directory which contains:
main.dart
- Where the app starts (BottomNavBar here)route_generator.dart
- where all the page routing is donestyles.dart
- where the colour themes are setcustom_widgets.dart
- where the shared widgets are kept/api
directory for the API interaction code.
Edit pubspec.yaml
to include other packages.
- Databases and API are managed on AWS using lambda functions Data for Bills are mirrored from the federal and state parliament websites using the ausbills python package
- Issues are manually entered into the database for now
- New Issues/Bills and votes are recorded on the block-chain
A list of current items and their progress can be found here. If you feel comfortable diving straight in, just fork the repo, and open it up in Android Studio. We use Effective Dart to guide our coding style, so make sure you make yourself familiar. Make the contributions you want to and create a Pull Request.
For collaborating, best practice is to join our Discord Community at discord.io / FluxParty and let us know where you're interested in helping out. That way we can make sure you are up to date with all the relevant information and put you in contact with others working on the project!
If you are new to Flutter here are a few resources to get you started on your first Flutter project:
- Lab: Write your first Flutter app
- Cookbook: Useful Flutter samples
- online documentation, which offers tutorials, samples, guidance on mobile development, and a full API reference.
Install dependencies:
sudo apt install curl
Get flutter:
git clone https://github.com/flutter/flutter.git -b master
echo '#Add Flutter to PATH' >> $HOME/.bashrc
echo 'export PATH="$PATH:'$(pwd)'/flutter/bin"' >> $HOME/.bashrc
source $HOME/.bashrc
echo "Check the flutter is in path"
echo $PATH
flutter precache
echo "Check your dependencies:"
flutter doctor
Download and install Android Studio and install the Flutter plugin:
Run flutter doctor
again to check dependencies.
flutter channel beta
flutter upgrade
flutter config --enable-web
Make sure you have Chrome installed
flutter devices
And Run flutter run -d chrome
in the project dir.
- Graphs (Public Voice)
- Commenting on Bills
- Weekly Reports
- Politi Compass - Personalised Voting History
- Create Issues UI
- User Profiles
- Settings - Notifications, Emails
- sorting bills - Date, title, chamber
- Search bar
- results map