• Stars
    star
    2,013
  • Rank 22,016 (Top 0.5 %)
  • Language
    JavaScript
  • License
    Apache License 2.0
  • Created almost 9 years ago
  • Updated 7 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Open Event Website App Generator https://sched.eventyay.com

Open Event Website Generator

Open Event webapp Codacy Badge codecov Reviewed by Hound Gitter Mailing Twitter Follow

The Open Event Website Generator App project has TWO components :

  • An event website generator
  • The actual generated website output.

The web generator application can generate event websites by getting data from event JSON files and binary media files, that are stored in a compressed zip file. You can also access the application through a REST API. Websites that are generated by the "web app generator" can be uploaded to any web location, e.g. on Github pages or any server (e.g. via ftp).

Communication

Please join our mailing list to discuss questions regarding the project :

https://groups.google.com/forum/#!forum/open-event

Our chat channel is on gitter here:

https://gitter.im/fossasia/open-event-webapp

1. Event Website Output

The component that is generated from the web app is the event website. Several sample event sites using the sample from the open-event repo were generated, showcased on the main index page and added to this repo as a Github Pages site. You can have a look at showcase pages on http://sched.eventyay.com.

2. Web App Generator

Components and Technology

Technologies used

The website generator uses the following technologies :-

1. HTML/CSS/Javascript based frontend

2. SASS - SASS to write optimized CSS.

3. Node.js - Javascript for the generator backend

4. Express.js - Server framework

5. Handelbars - Template for rendering

6. Socket.io - For handling multi-user client, with progress of upload/generation

7. WebdriverJs - Official Javascript Implementation of Selenium for testing generated event websites

Components of the Generator

1. Webform

The source of the webform can be found here.

It consists of :-

  • index.html - The webform page
  • form.js - The script that uploads the zips, and starts the generator process

2. Generator

The generator runs on a ExpressJS server, using this main app script.

3. Scripts

  • generator.js - Does the main generation tasks, and controls other scripts
  • fold_v1.js - Groups data of sessions, speakers, tracks etc from JSONs of v1
  • fold_v2.js - Groups data of sessions, speakers, tracks etc from JSONs of v2
  • dist.js - Creates folders, cleans folders, unzips/zips packages
  • ftpdeploy.js - Deploys finished website to organiser's server (optional)
  • mailer.js - Sends mail to organiser notifying of successful creation
  • buildlogger.js - Displays build logs while generating webapp
  • deploy.js - Automatically deploys generated event sites to user's github account
  • gulpfile.js - Creates minified js and css for generated webapp

4. Templates

The HTML pages of the generated website are created using Handelbars templates.

You can find all the templates here -

  • footer.hbs : Common template for footer on all pages
  • navbar.hbs : Common template for navbar on all pages
  • event.hbs : index.html - Home page
  • rooms.hbs : rooms.html - Venues page
  • schedule.hbs : tracks.html - Tracks page
  • speakers.hbs : speakers.html - Speakers page
  • session.hbs : session_id.html - Individual Session page having a particular id
  • CoC.hbs : CoC.html - Code of Conduct for an event

5. Selenium

Contains scripts related to testing different pages of the generated website.

  • basePage.js - Contains methods common to all the pages of the event site
  • eventPage.js - Contains methods for testing of the index page of the event
  • trackPage.js - Contains methods for testing of the tracks page of the event
  • generatorPage.js - Contains methods for testing of the generator form
  • roomPage.js - Contains methods for testing of the rooms page of the event
  • schedulePage.js - Contains methods for testing of the schedule page of the event
  • sessionPage.js - Contains methods for testing of the session pages of the event
  • speakerPage.js - Contains methods for testing of the speakers page of the event

Other Related Repositories

Open Event Format Definition

The Open Event Project enables the exchange of data between all components as well as with other services through a standardized Format. The Open Event repository provides a sample implementation of the format. It includes JSON files for all relevant event information and binary data for images and audio files.

Repository: https://github.com/fossasia/open-event

Chat Channel: https://gitter.im/fossasia/open-event

Open Event Server

The Open Event Server enables organizers to manage events from concerts to conferences and meetups. It offers features for events with several tracks and venues. Event managers can create invitation forms for speakers and build schedules in a Drag & Drop interface. The event information is stored in a database, which can be a sqlite-db file or saved in json itself. The system provides API endpoints to fetch the data, and to modify and update it. Organizers can import and export event data in a standard compressed file format that includes the event data in JSON and binary media files like images and audio.

Repository: https://github.com/fossasia/open-event-server

Chat Channel: https://gitter.im/fossasia/open-event-server

Open Event Android App

The Open Event Android Project consists of two components. The App Generator is hosted web application, that is hosted on a server and generates an event Android app from a zip with JSON and binary files (examples here) or through an API. The second component we are developing in the project is generic Android app - the output of the app generator. The mobile app can be installed on any Android device for browsing information about the event. Updates can be made automatically through API endpoint connections from an online source (e.g. server), which needs to defined in the provided event zip with the JSON files. The Android app has a standard configuration file, that sets the details of the app (e.g. color scheme, logo of event, link to JSON app data).

Repository: https://github.com/fossasia/open-event-android

Chat Channel: https://gitter.im/fossasia/open-event-android

6. Overview Site

Contains thumbnail images of sample events and main index.html file required for the showcase site

Web App Generator Test Installation

Installation/Deployment of the Web App Generator

How do I install Web App Generator on a Server

Please check out the documentation here.

How do I install Web App Generator on my local machine

Please check out the documentation here.

How do I install Web App Generator on Google Cloud

To install the system on Google Cloud please refer to the Google Cloud installation readme.

How do I install Web App Generator on AWS

To install the system on AWS please refer to the AWS installation readme.

How do I install Web App Generator on Digital Ocean

To install the system on Digital Ocean please refer to the Digital Ocean installation readme.

Accessing the Generator Web Form

Generator Screencast

  • Add your email id, select theme, select API version, select session style (single page for each session or expandable sessions), select data source

  • Then upload the zip file that contains all JSON files for speakers, sessions, sponsors, event, tracks and locations (These you should get from the server or through the API after you have created your event there).

  • Now, when you click on GENERATE APP and DOWNLOAD button, you'll get to download a zip of the event website. You can also deploy the web site to your Github Pages by clicking on DEPLOY button.

Accessing the Generator via REST API

Endpoints

POST /generate

Parameters (x-www-form-urlencoded) or json

Parameter Description Purpose
name (required) Name of the webapp Unique name of the webapp
email (required) Your email id We will send a email to this when your webapp is ready
datasource (required) Either jsonupload or eventapi
apiendpoint (if datasource = eventapi) API endpoint url

API specifications

Postman documenter

Configurations

All configurations are saved in the config.js file.

NOTE: In this document all config.<obj> variables refer to the data in the config.json file.

Server Configs

PORT

Variable Description
process.env.PORT (Can be described in shell env, or in Heroku type platforms)
config.PORT (Falls back to config file if above not found)

Mailer

We use Sendgrid to send mails, and you need a Sendgrid API to make it work. Additionally, you can also use SMTP to send mails if you don't have Sendgrid Key.

Variable Description
process.env.SENDGRID_API_KEY (Tries to get from shell env first)
config.SENDGRID_API_KEY (Falls back to config file)
process.env.SMTP_USERNAME (Tries to get from shell env first)
config.SMTP_USERNAME (Falls back to config file)
process.env.SMTP_PASSWORD (Tries to get from shell env first)
config.SMTP_PASSWORD (Falls back to config file)

Upload

  • We use AWS S3 services for storing the zip file of the generated event. These zip files are automatically deleted after 3 days from the store.

  • Each uploaded file has a unique download link. node-uuid module is used for generating the cryptic download link of the file.

Variable Description
process.env.AWS_BUCKET (Tries to get from shell env first)
config.AWS_BUCKET (Falls back to config file)
process.env.AWS_ACCESS_KEY_ID (Tries to get from shell env first)
config.AWS_ACCESS_KEY_ID (Falls back to config file)
process.env.AWS_SECRET_ACCESS_KEY (Tries to get from shell env first)
config.AWS_SECRET_ACCESS_KEY (Falls back to config file)

Github Deploy

The web-app is able to automatically deploy the generated event sites to Github Pages of a User. We use passport library for authentication of the user. For uploading and committing the event files, we use github library which provides a wrapper for the Github API in node.

Variable Description
process.env.GITHUB_CLIENT_ID (Tries to get from shell env first)
config.GITHUB_CLIENT_ID (Falls back to config file)
process.env.GITHUB_CLIENT_SECRET (Tries to get from shell env first)
config.GITHUB_CLIENT_SECRET (Falls back to config file)
process.env.CALLBACK_URL (Tries to get from shell env first)
config.CALLBACK_URL (Falls back to config file)

Images

We need to process all the speaker images and there are certain configs used -

Variable Description
config.speaker_images.MAX_WIDTH (Max needed height of speaker image)
config.speaker_images.MAX_HEIGHT (Max needed width of speaker image)
config.speaker_images.TRACK_HEIGHT_REM (Speaker image height, in CSS rem units, for tracks page)
config.speaker_images.TRACK_WIDTH_REM (Speaker image width, in CSS rem units, for tracks page)

Audio

Some sessions can have a recorded audio attached to them. The parameters for that are -

Variable Description
config.audio_files.MAX_SIZE_MB Max size of the audio (limited by Github file size)

Contributions, Bug Reports, Feature Requests

This is an Open Source project and we would be happy to see contributors who report bugs and file feature requests submitting pull requests as well.

Please report issues here

Issue and Branch Policy

Before making a pull request, please file an issue. So, other developers have the chance to give feedback or discuss details. Match every pull request with an issue please and add the issue number in description e.g. like "Fixes #123".

We have the following branches :-

  • development All development goes on in this branch. If you're making a contribution, you are supposed to make a pull request to development. PRs to master must pass a build check and a unit-test (test/serverTest.js) check on Travis
  • master This contains shipped code. After significant features/bugfixes are accumulated on development, we make a version update, and make a release.

Contributions Best Practices

Commits

  • Write clear, meaningful git commit messages (Do read http://chris.beams.io/posts/git-commit/)
  • Make sure your PR's description contains GitHub's special keyword references that automatically close the related issue when the PR is merged. (More info at https://github.com/blog/1506-closing-issues-via-pull-requests )
  • When you make minor changes to a PR (like for example fixing a failing Travis build or some small style corrections or minor changes requested by reviewers) make sure you squash your commits afterward. (Learn how to squash at https://davidwalsh.name/squash-commits-git )
  • When you're submitting a PR for a UI-related issue, it would be great if you add a screenshot of your change or a link to a deployment where it can be tested out along with your PR.

Feature Requests and Bug Reports

  • When you file a feature request or when you are submitting a bug report to the Issue tracker, make sure you add steps to reproduce it.

Join the development

  • Before you join development, please set up the project on your local machine, run it and go through the application completely. Press any button that you can see and see where it leads. Explore. (Don't worry, Nothing will happen to the app due to the exploring: wink: The only thing that will happen is, you'll be more familiar with what, is where and might even get some cool ideas on how to improve various aspects of the app.)
  • If you would like to work on an issue, drop in a comment on the issue.

Do read the Open Source Developer Guide and Best Practices at FOSSASIA.

Testing locally

If you want to run tests locally, first install the following:

npm install --no-save mocha chromedriver

You can then run the full test suite with:

npm test

or you can run one individual test script like this:

npx mocha -b test/generatorAndSchedule.js

LICENSE

OpenEvent Website Generator - A webapp and it's generator, written as part of the FOSSASIA Open Event project. The Open Event project aims to make server and client software required for hosting events/conferences easy to build and configure. Copyright (C) 2016, FOSSASIA. This program is free software: you can redistribute it and/or modify it. Please refer to the license document for more information.

More Repositories

1

visdom

A flexible tool for creating, organizing, and sharing visualizations of live, rich data. Supports Torch and Numpy.
Python
9,894
star
2

open-event-server

The Open Event Organizer Server to Manage Events https://test-api.eventyay.com
Python
2,906
star
3

phimpme-android

Phimp.me Photo Imaging and Picture Editor https://play.google.com/store/apps/details?id=org.fossasia.phimpme
Java
2,580
star
4

susi_server

SUSI.AI server backend - the Artificial Intelligence server for personal assistants https://susi.ai
Java
2,500
star
5

susi_android

SUSI.AI Android App https://play.google.com/apps/testing/ai.susi
Kotlin
2,418
star
6

open-event-frontend

The frontend for the Open Event API Server https://test.eventyay.com
JavaScript
2,313
star
7

open-event-droidgen

Open Event Android App Generator https://github.com/fossasia/open-event-android/raw/apk/sample-apk-fossasia17-development.apk
Java
2,048
star
8

pslab-android

PSLab Android App https://play.google.com/store/apps/details?id=io.pslab
Java
2,038
star
9

susi.ai

SUSI.AI Web Client https://susi.ai
JavaScript
2,026
star
10

open-event-attendee-android

Open Event Attendee Android General App https://github.com/fossasia/open-event-android/blob/apk/open-event-dev-app-playStore-debug.apk
Kotlin
1,947
star
11

star-me

Star FOSSASIA Repositories on Github and Support the Community
JavaScript
1,906
star
12

fossasia.org

FOSSASIA Website https://fossasia.org
Less
1,883
star
13

susi_iOS

SUSI AI iOS app http://susi.ai
Swift
1,870
star
14

loklak_search

Frontend Search for loklak server https://loklak.org
TypeScript
1,840
star
15

open-event-organizer-android

Open Event Mobile App for Organizers and Entry Managers https://play.google.com/store/apps/details?id=com.eventyay.organizer
Java
1,793
star
16

badgeyay

Attendee Badge Generator for Conferences
JavaScript
1,791
star
17

badge-magic-android

Badge Magic with LEDs - Android App https://play.google.com/apps/testing/org.fossasia.badgemagic
Kotlin
1,788
star
18

meilix

Beautiful Linux System https://meilix.org | APT Repo: http://meilix.fossasia.org
Python
1,779
star
19

pslab-desktop

PSLab Desktop Application https://pslab.io
JavaScript
1,770
star
20

susper.com

Susper Decentralised Search Engine https://susper.com
TypeScript
1,742
star
21

neurolab-android

NeuroLab Android https://github.com/fossasia/neurolab-android/raw/apk/neurolab-dev-debug.apk
Java
1,710
star
22

open-event

Open Event Project, Samples, Documentation and Artwork http://open-event-dev.herokuapp.com
Python
1,701
star
23

labs.fossasia.org

Projects Website for FOSSASIA http://labs.fossasia.org
CSS
1,669
star
24

query-server

Query Server Search Engines
Python
1,665
star
25

gci16.fossasia.org

FOSSASIA Google Code-In Website 2016/17 http://gci16.fossasia.org
HTML
1,659
star
26

codeheat.org

Codeheat Coding Contest Website https://codeheat.org
Less
1,639
star
27

pslab-hardware

PSLab Hardware Design and Schematics https://pslab.io
Prolog
1,633
star
28

pslab-python

Python Library for PSLab Desktop: https://pslab.io
Python
1,632
star
29

flappy-svg

Flappy Bird in SVG. Play it at http://fossasia.github.io/flappy-svg/
JavaScript
1,613
star
30

susi_linux

Hardware for SUSI AI https://susi.ai
Python
1,609
star
31

pslab-scripts

Pocket Science Lab - Scripts for Sensor Experiments
Python
1,604
star
32

gci17.fossasia.org

FOSSASIA Google Code-In Website 2017/18 https://gci17.fossasia.org
CSS
1,598
star
33

gci15.fossasia.org

FOSSASIA Google Code-In Website 2015/16 http://gci15.fossasia.org
HTML
1,596
star
34

susi_skill_cms

A web application framework to edit susi skills http://skills.susi.ai
JavaScript
1,583
star
35

2017.fossasia.org

FOSSASIA Summit 2017 https://2017.fossasia.org
HTML
1,580
star
36

2018.fossasia.org

FOSSASIA Summit 2018 https://2018.fossasia.org
HTML
1,577
star
37

fossasia-communities

FOSSASIA API Files of Communities in Asia
1,576
star
38

open-event-attendee-ios

iOS app for open event
Swift
1,570
star
39

gci14.fossasia.org

FOSSASIA Google Code-In Website 2014/15 http://gci14.fossasia.org
JavaScript
1,569
star
40

knittingpattern

A Python Library for Knitting Patterns
Python
1,569
star
41

2016.fossasia.org

FOSSASIA Summit 2016 https://2016.fossasia.org
CSS
1,564
star
42

2012.fossasia.org

FOSSASIA Summit 2012 Event Site https://2012.fossasia.org
CSS
1,563
star
43

pslab-firmware

Firmware for PSLab Open Hardware Platform https://pslab.io
C
1,559
star
44

loklak_webclient

loklak web application
JavaScript
1,553
star
45

loklak_wok_android

"loklak wok" is a harvesting peer for the loklak_server https://github.com/fossasia/loklak_wok_android/raw/apk/loklak_wok_1.2_20160201.apk
Java
1,549
star
46

susi_chromebot

SUSI.AI Chrome Extension
JavaScript
1,548
star
47

directory.api.fossasia.net

Python
1,547
star
48

yaydoc

Docs! Yay! http://yaydoc.org
JavaScript
1,546
star
49

x-mario

x-mario, the gaming distro
Shell
1,542
star
50

searss

Search to RSS tool
Python
1,542
star
51

neurolab-hardware

Neurolab Hardware
1,541
star
52

2015.fossasia.org

FOSSASIA Summit 2015 Event Site https://2015.fossasia.org
CSS
1,539
star
53

meilix-systemlock

Meilix system lock
Python
1,537
star
54

meilix-generator

WebApp for generating a custom ISO image based on Meilix http://meilix.org
HTML
1,537
star
55

2014.fossasia.org

FOSSASIA Summit 2014 Event Site http://2014.fossasia.org
HTML
1,537
star
56

phimpme-drupal

Phimp.me - Photo App on Drupal
PHP
1,534
star
57

knitlib

Knitting backend library for knitting machines
Python
1,532
star
58

labyrinth

FOSSASIA Labyrinth
JavaScript
1,532
star
59

yaydoc-artwork

Open Source Books
1,532
star
60

sg18.sciencehack.asia

UNESCO Hackathon Website at the FOSSASIA Summit Singapore https://sg18.sciencehack.asia
CSS
1,532
star
61

phimpme-wordpress

Phimp.me - Photo App on Wordpress
PHP
1,532
star
62

CommonsNet

Sharing and Transparency for WiFi Networks
JavaScript
1,531
star
63

knitweb

knitting web app frontend and backend
JavaScript
1,530
star
64

pslab-case

PSLab Case https://pslab.io
1,530
star
65

fossasia.net

FOSSASIA.net Website https://fossasia.net
HTML
1,530
star
66

2011.fossasia.org

FOSSASIA Summit 2011 Event Site http://2011.fossasia.org
HTML
1,530
star
67

unesco.sciencehack.asia

UNESCO Hackathon Website https://unesco.sciencehack.asia
CSS
1,530
star
68

pslab-expeyes

PSLab for ExpEYES - Science Experiments and Data Acquisition for Physics Education https://pslab.io
Python
1,529
star
69

susi_tweetbot

Twitter Bot for Susi http://susi.ai
JavaScript
1,529
star
70

api.fossasia.net

FOSSASIA API
JavaScript
1,529
star
71

fossasia-nodemailer

JavaScript
1,529
star
72

xmario_buildscript

x-mario build script
Shell
1,529
star
73

2023.fossasia.org

HTML
1,528
star
74

hotelxoai.com

The Open Source Hotel in the Mekong Delta in Vietnam
HTML
1,527
star
75

2010.fossasia.org

FOSSASIA Summit 2010 Event Site http://2010.fossasia.org
HTML
1,527
star
76

susi_smart_box

SUSI.AI Smart Box https://susi.ai
1,526
star
77

blog.fossasia.org

Issue Tracker for https://blog.fossasia.org
1,526
star
78

fossasia11-drupal

FOSSASIA 2011 Drupal Site
PHP
1,526
star
79

open-event-next

Open Event Frontend "Next Version" with Vue.js
TypeScript
1,525
star
80

perspektive89.com

Open Source Journal Perspektive89.com
1,525
star
81

fossasia10-drupal

FOSSASIA 2010 Drupal Site
PHP
1,525
star
82

pslab-test-jig

PSLab Test Jig - Boards to test PSLab hardware https://pslab.io
1,523
star
83

cmap.api.fossasia.net

FOSSASIA Community Map
JavaScript
1,523
star
84

fossasia.github.io

FOSSASIA.GitHub.io
HTML
1,523
star
85

feed.api.fossasia.net

PHP
1,522
star
86

loklak-webtweets

FOSSASIA Tweets with loklak http://fossasia.github.io/loklak-webtweets/
Less
1,522
star
87

foss.vn

FOSS.vn Website http://foss.vn
HTML
1,522
star
88

susi_skill_data

A storage place for SUSI.AI skills https://susi.ai
1,521
star
89

susi_fbbot

Susi Facebook Bot http://susi.ai
JavaScript
1,519
star
90

knitpat

Knitting Pattern Format
Python
1,518
star
91

jugaadfest.com

Jugaadfest in India https://jugaadfest.com
HTML
1,518
star
92

susi_desktop

Desktop Client for http://api.susi.ai
JavaScript
1,517
star
93

loklak_wp_plugins

PHP
1,517
star
94

susi_telegrambot

Susi Telegram Bot http://susi.ai
JavaScript
1,516
star
95

susi_slackbot

Ask Susi Messengers http://susi.ai
JavaScript
1,516
star
96

open-event-scraper

Google spreadsheet parsing for Open Event JSON
Python
1,516
star
97

event-collect

event website listing to Open Event format scraper and converter
Python
1,516
star
98

knitserver

JavaScript
1,515
star
99

accounts.susi.ai

Accounts Service for SUSI.AI http://accounts.susi.ai
JavaScript
1,514
star
100

loklak_tweetheatmap

Heat map with tweets by search query using Loklak API and OpenLayers 3
JavaScript
1,513
star