Operation Caribbean Summer
=====================
## Badges
[![GitHub forks](https://img.shields.io/github/forks/JaviRamosLab/OperationCaribbeanSummer?branch=master&label=Forks&logo=GitHub&logoColor=ffffff&labelColor=282828&color=informational&style=flat)]()
[![GitHub stars](https://img.shields.io/github/stars/JaviRamosLab/OperationCaribbeanSummer?branch=master&label=Stars&logo=GitHub&logoColor=ffffff&labelColor=282828&color=informational&style=flat)]()
[![GitHub watchers](https://img.shields.io/github/watchers/JaviRamosLab/OperationCaribbeanSummer?branch=master&label=Watchers&logo=GitHub&logoColor=ffffff&labelColor=282828&color=informational&style=flat)]()
[![Documentation Status](https://readthedocs.org/projects/OperationCaribbeanSummer/badge/?version=latest)](http://OperationCaribbeanSummer.readthedocs.io/?badge=latest)
[![GitHub branches](https://badgen.net/github/branches/JaviRamosLab/OperationCaribbeanSummer)](https://github.com/JaviRamosLab/OperationCaribbeanSummer/)
[![GitHub release](https://img.shields.io/github/release/JaviRamosLab/OperationCaribbeanSummer.svg)](https://GitHub.com/JaviRamosLab/OperationCaribbeanSummer/releases/)
[![GitHub commits](https://badgen.net/github/commits/JaviRamosLab/OperationCaribbeanSummer)](https://GitHub.com/JaviRamosLab/OperationCaribbeanSummer/commit/)
![GitHub pull requests](https://img.shields.io/github/issues-pr/JaviRamosLab/OperationCaribbeanSummer)
![GitHub milestones](https://img.shields.io/github/milestones/all/JaviRamosLab/OperationCaribbeanSummer)
![GitHub repo size](https://img.shields.io/github/repo-size/JaviRamosLab/OperationCaribbeanSummer)
![GitHub contributors (via allcontributors.org)](https://img.shields.io/github/all-contributors/JaviRamosLab/OperationCaribbeanSummer/master)
![](./public/img/banners/OperationCaribbeanSummer-MLK44-banner-web.jpg)
## Name
Operation Caribbean Summer #MLK44
## Description
```web tool``` for create, manage and tracking facebook events for the campaing #MLK44 (Martin Luther King - april 4)
All based on the [facebook API](https://developers.facebook.com/docs/graph-api/reference/official-event)
Facebook URL endpoint
`/v19.1/{official_event_id}?access_token={access_token}`
Youtube URL endpoint
`https://www.googleapis.com/youtube/v3/videos?part=snippet,contentDetails,statistics&id={youtubeIDvideo}&key={youtubeKey}`
+ maps - [OpenStreetMap - OSM](https://www.openstreetmap.org/)
+ Database Schema - [geojson](http://geojson.org/)
This project is full automated with not admins for local country insecurity, we need urgent suport of organization for development, admin and orientation.
Nota: esa web no tendrá soporte técnico. Muy probablemente sufrirá ataques DDoS y sobre carga en el sistema, todo el control será transferido a programadores y amigos de Wikimedia Esperanto, Abaas y partidos piratas.
## Contents
- [Badges](#Badges)
- [Name](#Name)
- [Description](#Description)
- [Tags/Hashtags](#Tags/Hashtags)
- [Ideas/Usage](#Ideas/Usage)
- [Subpáginas](#Subpáginas)
- [Visuals](#Visuals)
- [Installation](#Installation)
- [Demo](#Demo)
- [API documentation](#API-documentation)
- [Usage](#Usage)
- [Roadmap](#Roadmap)
- [Contributing](#Contributing)
- [Authors](#Authors-and-acknowledgment)
- [Change log/versions](#Change-log/versions)
- [Support](#Support-the-project)
- [Warning](#Warning)
- [License](#License)
- [Official Site](#Official-Site)
- [Contact info](#Contact-info)
- [Credits](#Credits)
## Tags/Hashtags
#MLK44 #LiquidDemocracy #CyberAgora #Agora #OperationCaribbeanSummer
## Dependencies
1. core
- [node.js](https://github.com/nodejs/node) + [oficial web](https://nodejs.org/)
- [express](https://github.com/expressjs) + [oficial web](https://expressjs.com)
- [mongoose](https://github.com/Automattic/mongoose) + [oficial web](https://mongoosejs.com/)
- [EJS](https://github.com/mde/ejs) + [oficial web](https://ejs.co/) - template engine
2. backend
- [node-schedule](https://github.com/node-schedule)
- [html2canvas](https://github.com/niklasvh/html2canvas) + [oficial web](https://html2canvas.hertzen.com/)
- [dotenv](https://github.com/motdotla/dotenv)
- [cors](https://github.com/expressjs/cors)
3. database
- [MondoDB] (https://www.mongodb.com)
- [json] (http://json.org/) [local with node fs]
4. frontend
- [bootstrap](https://github.com/twbs/bootstrap) + [oficial web](https://getbootstrap.com/)
- [fontawesome](https://github.com/FortAwesome)
- [Chart.js](https://github.com/chartjs)
- [github-corners](https://github.com/tholman/github-corners)
- [leaflet](http://github.com/Leaflet) + [oficial web](https://leafletjs.com/)
- [PureCounter.js](https://github.com/srexi/purecounterjs)
- [aos.js](https://github.com/michalsnik/aos)
- [swiper](https://github.com/nolimits4web/swiper/) + [oficial web](https://swiperjs.com)
- [addtoany (oficial web)](https://https://www.addtoany.com/)
5. development
- [nodemon](https://github.com/remy/nodemon) / dev
6. documentation
- [PrismJS](https://github.com/PrismJS)
- [Swagger](https://github.com/swagger-api) + [oficial web](https://swagger.io) __not implemented__
- [ReadTheDocs](https://github.com/readthedocs) + [oficial web](https://readthedocs.org/) __not implemented__
7. not implemented
- [node-fs-extra](https://github.com/jprichardson/node-fs-extra)
- [Passport.js](https://github.com/jaredhanson/passport)
## Ideas/Usage
Tabla de eventos
| # País | Ciudad | ID | facebook link | URL | coordenadas | Cantidad de participantes | Fecha/hora | Hashtags
| ---- | ---- | :----: | :----: | :----: | :----: | :----: | :----:
| | | | | | | | |
| | | | | | | | |
Event Facebook event DB de eventos mapa
stats
banner
## Stats
- Cantidad de eventos
- Cantidad de subeventos (eventos creados por otras páginas/usuarios y vinculados al MLK44 [mismo lugar/día])
- Cantidad de países
- Cantidad de participantes
- Veces compartido
- organizaciones/páginas con subeventos
- top-eventos según cantidad de participantes
## Subpáginas
### Visuals
**Banner - info**
`/img/banners/OperationCaribbeanSummer-MLK44-banner-
.jpg`
- país
- ciudad
- hora local 19:05 (+ UTC)
- coordenadas
- link a facebook /event/
- link a la web /event/
- cantidad de participantes (cambia dinámicamente cada día)
- fondo negro con el hashtag #MLK44
- Hanshtags (#MLK44, #MLK44Cuba, #MLK44CULH,...)
- QR del link a nuestra web
**Banners - proportions**
- scuar-banner (200x200)
- horizontal-banner (468x60)
- vertical-banner (160x600)
## Installation
### Demo
[Demo](https://OperationCaribbeanSummer.org)
## API documentation
### URL encode
url= `https://`
url= `OperationCaribbeanSummer.org/API/v1/event/`
### Endpoints
- `https://OperationCaribbeanSummer.org/API/v1/` (basic URL)
- `https://OperationCaribbeanSummer.org/API/v1/event/:ID`
- `https://OperationCaribbeanSummer.org/API/v1/country/:ID`
- `https://OperationCaribbeanSummer.org/API/v1/continent/:ID`
- `https://OperationCaribbeanSummer.org/API/v1/world/:ID` (_not implemented_)
- `https://OperationCaribbeanSummer.org/API/v1/org/:ID` (_not implemented_)
- `https://OperationCaribbeanSummer.org/API/v1/user/:ID` (_not implemented_)
- `https://OperationCaribbeanSummer.org/API/v1/subevent/:ID` (_not implemented_)
[documentation:](https://OperationCaribbeanSummer.org/api-documentation.html)
### Generar imágenes/infografías dinámicamente accesibles por link
- `https://OperationCaribbeanSummer.org/img/country/MLK44-country-.jpg` for country
- `https://OperationCaribbeanSummer.org/img/continent/MLK44-continent-.jpg` for continent
- `https://OperationCaribbeanSummer.org/img/stats/MLK44-world.jpg` for world
- `https://OperationCaribbeanSummer.org/img/stats/MLK44-world-map.jpg` for world map
- `https://OperationCaribbeanSummer.org/img/maps/MLK44-map-.jpg` for map
- `https://OperationCaribbeanSummer.org/img/cards/MLK44-event-card-.jpg` for event
- `https://OperationCaribbeanSummer.org/img/orgs/MLK44-org-.jpg` for organization
- `https://OperationCaribbeanSummer.org/img/news/MLK44-banner-scuar.jpg` for scuar-banner (200x200)
- `https://OperationCaribbeanSummer.org/img/news/MLK44-banner-horizontal.jpg` for horizontal-banner (468x60)
- `https://OperationCaribbeanSummer.org/img/news/MLK44-banner-vertical.jpg` for vertical-banner (160x600)
- `https://OperationCaribbeanSummer.org/img/news/MLK44-card.jpg` for card (-----)-------------
### Imágenes dinámicas
- `https://operationcaribbeansummer.org/img/OperationCaribbeanSummer-infographic-1`
- `https://operationcaribbeansummer.org/img/OperationCaribbeanSummer-infographic-2`
- `https://operationcaribbeansummer.org/img/OperationCaribbeanSummer-infographic-#`
- `https://operationcaribbeansummer.org/img/OperationCaribbeanSummer-banner-1`
- `https://operationcaribbeansummer.org/img/OperationCaribbeanSummer-banner-2`
- `https://operationcaribbeansummer.org/img/OperationCaribbeanSummer-banner-#`
- `https://operationcaribbeansummer.org/img/OperationCaribbeanSummer-infocard-1`
- `https://operationcaribbeansummer.org/img/OperationCaribbeanSummer-infocard-2`
- `https://operationcaribbeansummer.org/img/OperationCaribbeanSummer-infocard-#`
- `https://operationcaribbeansummer.org/img/OperationCaribbeanSummer-map-1`
- `https://operationcaribbeansummer.org/img/OperationCaribbeanSummer-map-2`
- `https://operationcaribbeansummer.org/img/OperationCaribbeanSummer-map-#`
### API reference
- [Facebook graph API event](https://developers.facebook.com/docs/graph-api/reference/event/)
- [Facebook graph API official-event](https://developers.facebook.com/docs/graph-api/reference/official-event)
- [Facebook graph API insights](https://developers.facebook.com/docs/graph-api/reference/insights)
- [YouTube API](https://developers.google.com/youtube/v3/docs/channels)
- [wikimedia REST API Documentation](https://wikimedia.org/api/rest_v1/)
- [OpenStreetMap API (OSM)](https://www.openstreetmap.org)
## Roadmap
If you have ideas for releases in the future, it is a good idea to list them in the README and/or open an [Issues](https://github.com/JaviRamosLab/OperationCaribbeanSummer/issues).
read [CHANGELOG.md](https://github.com/JaviRamosLab/OperationCaribbeanSummer/CHANGELOG.md).
v0.4.4 (beta)
- [x] first minimal application
- [x] basic ingeniering
- [x] minimal styles/UI/UX
- [x] basic fetch facebook API - GET stats from facebook event #9
- [x] basic fetch OperationCaribbeanSummer.org API
- [x] basic API REST in OperationCaribbeanSummer.org #2
- [x] API GET event
- [x] API GET country
- [x] API GET continent
- [x] API GET world
- [x] stats charts
- [ ] stats table
- [x] inspiration pages
- [x] wikipedia inspiration pages
- [x] wikipedia stats #3
- [x] wikipedia charts stats
- [x] charts color palette
- [x] charts old data (2023)
- [x] charts new data (2024) `fetch()`
- [x] subpages
- [x] 24 youtube video pages
- [x] 12 wikipedia pages
- [x] 8 inspiration pages
- [ ] iframes
- [x] banners
- [x] vertical-banner 160x600 (<iFrame> system)
- [x] scuar-banner 200x200 (<iFrame> system)
- [x] horizontal-banner 468x60 (<iFrame> system)
- [x] infographics (event, country, continent, world) #4
- [x] infographics events in Cuba
- [x] infographics event
- [ ] infographics country
- [ ] infographics continent
- [ ] infographics world
- [x] stats system #8
- [x] robots.txt, SEO and metatags
- [x] sitemap.xml (_partial_)
- [x] events table
- [x] events pages
- [x] countdown (animated and multilingual)
- [x] basic documentation
- [ ] visit counters
v1.0.0
- [] search box
- [] POST API functionalities (create new events) #1
- [] web administration system #7
- [] international event stats + API
- [] timeline (by event `timestamp`)
- [] API GET organization
- [] API GET subevent
- [] sitemap.xml (full implementation)
- [] POST new event (after admin aprove/whithout GPS restriction) #6
- [] recomend coord GPS #5
- [] admin/ merge dupe events
- [] admin/ delete event
v2.0.0
- [] translation/localization
### Issues/Milestones
- POST new event
- basic API REST in OperationCaribbeanSummer.org
- API GET event
- wikipedia stats
- infographics (event, country, continent, world)
- POST new event (after admin aprove/whithout GPS restriction)
- recomend coord GPS
- API documentation swagger/openapi
- API documentation readthedocs.org
- ...
[Issues](https://github.com/JaviRamosLab/OperationCaribbeanSummer/issues) -/-
[milestones](https://github.com/JaviRamosLab/OperationCaribbeanSummer/milestones) -/-
[Bugs](https://github.com/JaviRamosLab/OperationCaribbeanSummer/labels/bug)
### Calendars
- google calendar, iPhone calendar,... (__not implemented__)
- Event in Meetup (via API) (__not implemented__)
## Contributing
Contributions needed, we are fully open to contributions!
- Contribute to OperationCaribbeanSummer and submit a pull request.
- Suggest features you'd like to see (add new Issue)
- Track bugs you've found. -[Bugs](https://github.com/JaviRamosLab/OperationCaribbeanSummer/labels/bug)-
- Improve the code
- If the full system is down, build your ouwn system and events (cunlaboration/not concurency)
## Authors and acknowledgment
[@JaviRamosLab](https://github.com/JaviRamosLab "Javier Ramos Nistal") and
[@Lazaro Ochoa](https://www.facebook.com/lazaro.ochoayzquierdo)
### Support the project
We not have secure pay system (on your risk) use paypal or BankCard
- [buymeacoffee](https://www.buymeacoffee.com/javiramoslab)
- hosting needed (or support from AWS!)
- new databse and API hosting needed (or support from MongoDB!)
- translations needed
## License
Code released under [GNU License](https://github.com/JaviRamosLab/operationcaribbeansummer/blob/master/LICENSE) and [CC-BY-SA](http://creativecommons.org/licenses/by-sa/4.0/) License [Javier Ramos Nistal](https://github.com/JaviRamosLab) + [Lazaro Ochoa](https://www.facebook.com/lazaro.ochoayzquierdo)
### Official Site
[Web Site](http://OperationCaribbeanSummer.org "#OperationCaribbeanSummer - Martin Luther King #MLK44")
#### Responsimple is a project by [@JaviRamosLab](http://javiramoslab.com "Javier Ramos Nistal")
## Credits
Mainly inspired by `EventaServo` [event web hosting](https://eventaservo.org/) and `Paralela Universo` [simultaneus esperanto events trought te world](https://paralelauniverso.com/)
### Show some by starring some of the repositories!
### Developed by Javier Ramos Nistal @JaviRamosLab and Lazaro Ochoa from Cuba with ", " and whithout ""