Categories: None [Edit]
crowdfund_alec
# Crowdfund (Alec)
Ferramenta de linha de comando e biblioteca Ruby para simular um programa de **arrecadação de fundos** com rodadas, promessas (pledges) e diferentes tipos de projetos (básico, com *matching*, e *grant*).
## Instalação
```bash
gem install crowdfund_alec
```
Ou rode a partir do código-fonte:
```bash
ruby bin/crowdfund
```
## Como funciona
- Você carrega projetos via CSV (nome, fundos_iniciais, meta).
- Em cada rodada, um dado é rolado para **adicionar** (+25) ou **remover** (–15) fundos do projeto.
- Em paralelo, o projeto recebe **pledges** aleatórios: bronze ($50), silver ($75), gold ($100).
- Projetos podem ter comportamento especial:
- **MatchingProject**: quando chega a 50% da meta, cada `add_fund` passa a dobrar (+50).
- **GrantProject**: nunca perde fundos em `remove_fund`.
- Ao sair, o relatório salva os **subfinanciados** em `needmoremoney.txt` e imprime estatísticas.
## Uso (CLI)
```bash
# (1) CSV padrão (bin/projects.csv)
ruby bin/crowdfund
# (2) Informando um CSV customizado
ruby bin/crowdfund caminho/para/projetos.csv
```
Durante a execução:
- Digite um número para a quantidade de rodadas.
- Digite `q` ou `e` para sair e ver o relatório final.
### Formato do CSV
```
NomeDoProjeto,fundos_iniciais,meta
BuyaBoat,5,10000
TraveltoVictoriaIsland,5,3000
GetaPuppy,5,300
```
## Saída esperada
- Resumo por rodada dos fundos e pledges recebidos.
- Arquivo `needmoremoney.txt` contendo:
- Título do relatório.
- Projetos totalmente financiados.
- Projetos subfinanciados ordenados por **quanto falta**.
- Snapshot CSV de todos os projetos.
## API (uso como biblioteca)
Requerendo as classes principais:
```ruby
require 'crowdfund/project'
require 'crowdfund/fund_request'
```
Criando projetos e executando rodadas:
```ruby
project = Project.new("My App", 500, 2000)
funding = FundRequest.new("Startup do Alec")
funding.add_project(project)
funding.request_funding(5)
funding.print_results
```
### Classes principais
- `Project`
- Atributos: `name`, `fund_amount`, `target_...
Total
Ranking: 187,054 of 188,645
Downloads: 408
Daily
Ranking: 65,953 of 188,635
Downloads: 4
Downloads Trends
Ranking Trends
Num of Versions Trends
Popular Versions (Major)
Popular Versions (Major.Minor)
Depended by
| Rank | Downloads | Name |
|---|
Depends on
| Rank | Downloads | Name |
|---|---|---|
| 29 | 937,687,145 | rspec |
Owners
| # | Gravatar | Handle |
|---|---|---|
| 1 | LucioAlec |