A progressive web application (PWA) for coming to a consensus on decisions, complaints and suggestions sharing, and creating events.
Explore the docs »
View Demo
·
Report Bug
·
Request Feature
Table of Contents
Decider (the name is a work in progress), is a progressive web application (PWA) intended for the following purposes:
- Coming to a consensus on decisions, e.g., you can post items and have your team, housemates, partner and so on vote on options linked to the given item.
- A spin the wheel or other randomised selection tools, the results of which you can then share with others.
- A page for optionally anonymous submissions, i.e., you can post complaints about someone not doing the dishes in the household on a regular basis or ideally suggestions for improvements for your team like, we should implement flexible working hours.
- Event creation, a stand-alone event creation tool that can send invitations via email to people's calendars.
Decider aims to be able to have the same functionality for both anonymous and registered users, whereby you can either link a team, group, relationship, via a shared user access code and password, or have registered members to a group. This application has been built using a Golang backend with Firebase Hosting & Realtime Database alongside Google Cloud Platform, a React TypeScript front-end with Ionic for mobile application development.
The complete design of the solution can be seen as hosted on Figma.
Given Decider is a React TypeScript application that utilises a Golang API server, it is assumed that the following
is installed in your development environment.
Node.js:^v18.0.0Go:^v1.20.3
In the event you do not have the base prerequisites installed, please refer to the following links:
- Node.js
- Go.dev
- Docker
- Note: On MacOS devices, I personally recommend using Orbstack as an alternative to Docker desktop.
From there, you can follow the steps below to run the application on your local machine.
- Generate application credentials on Firebase and note them down. You'll require both the Admin SDK credentials and the standard Firebase credentials.
- Copy the template
.env.templateandfirebaseCredentials.template.jsonfiles to the same location (without the.templatepart).
# From the root of the repository
cd client && cp .env.template .env && cd ../
cd api && cp .env.template .env && cp firebaseCredentials.template.json firebaseCredentials.json && cd ../- Populate the environment files with relevant keys and details.
- Navigate to the
clientdirectory and install thenpmpackages.
cd client
npm install- Navigate to the
apidirectory and install thegopackages.
cd api
go installOnce you have finished the steps above, you should be fine to run the application and API locally as per the instructions in the Usage section.
- Navigate to the
clientdirectory and run the client application.
cd client
npm start- Navigate to the
apidirectory and run the API server.
cd api
go run main.goTODO:
- Add docker execution steps.
For more examples, please refer to the Documentation
- Project initialisation & creation
- Front-end and architectural design
- Back-end implementation
- Golang API server
- Front-end implementation
- Basic website build
- Mobile application build
- Hosting
- Application hosted and served via cloud-based platform (GCP)
- Private alpha access and testing
- Public beta access
- Release onto mobile application stores
See the open issues for a full list of proposed features (and known issues).
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Distributed under the MIT License. See LICENSE.txt for more information.
Jim T Kelly - [email protected]
Project Link: https://github.com/jamestkelly/decider
Thank you to the following for their guides and articles on similar projects.
