Skip to content

A progressive web application (PWA) for coming to a consensus on decisions, complaints and suggestions sharing, and creating events.

License

Notifications You must be signed in to change notification settings

jamestkelly/decider

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Contributors Forks Stargazers Issues MIT License LinkedIn


Logo

Decider

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
  1. About The Project
  2. Getting Started
  3. Usage
  4. Roadmap
  5. Contributing
  6. License
  7. Contact
  8. Acknowledgments

About The Project

Product Name Screen Shot

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.

(back to top)

Built With

  • React
  • Ionic
  • Go
  • Firebase
  • Google Cloud Platform
  • Docker

(back to top)

Getting Started

Prerequisites

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.0
  • Go: ^v1.20.3

Installation

In the event you do not have the base prerequisites installed, please refer to the following links:

From there, you can follow the steps below to run the application on your local machine.

  1. Generate application credentials on Firebase and note them down. You'll require both the Admin SDK credentials and the standard Firebase credentials.
  2. Copy the template .env.template and firebaseCredentials.template.json files to the same location (without the .template part).
# 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 ../
  1. Populate the environment files with relevant keys and details.
  2. Navigate to the client directory and install the npm packages.
cd client
npm install
  1. Navigate to the api directory and install the go packages.
cd api
go install

Once 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.

(back to top)

Usage

  1. Navigate to the client directory and run the client application.
cd client
npm start
  1. Navigate to the api directory and run the API server.
cd api
go run main.go

TODO:

  • Add docker execution steps.

For more examples, please refer to the Documentation

(back to top)

Roadmap

  • 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).

(back to top)

Contributing

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!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

(back to top)

License

Distributed under the MIT License. See LICENSE.txt for more information.

(back to top)

Contact

Jim T Kelly - [email protected]

Project Link: https://github.com/jamestkelly/decider

(back to top)

Acknowledgments

Thank you to the following for their guides and articles on similar projects.

(back to top)

About

A progressive web application (PWA) for coming to a consensus on decisions, complaints and suggestions sharing, and creating events.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •