Equal-Vote / starpy

Python implementation of the STAR Voting system
https://www.starvoting.org/
BSD 3-Clause "New" or "Revised" License
8 stars 4 forks source link

How to organize the project / requirements / folders/ libraries #25

Open masiarek opened 1 year ago

masiarek commented 1 year ago

Questions

Should we have two versions of starpy tabulation software:
- "basic" - with dependencies (numpy, pytest, etc)  <-- this is where we are
- "complex" - without dependencies - see example -->  https://github.com/larryhastings/starvote

"Basic" 
Should be as straight forward as possible - even for users without programming skills - just install python and run the program.
Allow user to play with STAR Voting method.
PROS:
- simple (avoid dependencies version control, no need to install dependencies)
CONS:
- missing useful libraries/dependencies that advanced user / programmer would be happy to use

"Complex" 
PROS:
- all bells and whistles
- test cases 
- expected test results
CONS:
- user must install dependencies

"Hybrid approach"
Have one library - but installation process is asking user what to install - Basic or Complex.

"As-Is"

We are using a "complex" approach.
starpy:
- Allocated_Score.py
- STAR.py
tests:
- test_STAR_single_winner.py
- test_STAR_multi_winner_allocated_score.py
- test_STAR_single_winner.py

"Should-Be":

Do we want to incorporate the "basic" simple approach (see https://github.com/larryhastings/starvote) into our library? How to organize this? Follow "Hybrid" approach?

mikefranze commented 1 year ago

We shouldn't create two versions that we have to maintain. If we end up creating a "simple" version with no dependencies we should just migrate to that.