GithubHelp home page GithubHelp logo

fossasia / open-event Goto Github PK

View Code? Open in Web Editor NEW
1.7K 28.0 176.0 845.99 MB

Open Event Project, Samples, Documentation and Artwork http://open-event-dev.herokuapp.com

License: GNU General Public License v3.0

Python 100.00%

open-event's Introduction

Open Event

Open Event Gitter Mailing List

The Open Event Project offers event managers a platform to help users organize events including concerts, conferences, summits and regular meetups . The components support organizers through all stages from event planning to publishing, marketing and ticket sales. Automated web and mobile apps help attendees to get information easily. The Open Event Project was originally started to support the organization of the FOSSASIA OpenTechSummit and is maintained by the FOSSASIA community.The Open Event boasts a diverse ecosystem and is composed of several components:

Components of Open Event Ecosystem

The Open Event Format Definition

Repository Gitter The Open Event format enables the exchange of data between all components as well as with other services through a standardized Format. This 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. The repository holds the JSON Schema sample implementation in the /sample folder, that is used across all projects for testing. We keep:

  • Zip files that include all JSON files with binary media data, And
  • The uncompressed files that can act as APIs substitutes to test applications.

The Open Event Server

Repository Gitter The Open Event Server is the centralised backend powering most of the components of the open event ecosystem. The open event server exposes a well documented JSON:API Spec Compliant REST API that can be used by external services (like the Open Event Organiser App and the Open Event Frontend) to access & manipulate the data. Using the APIs of the open event server, it is possible for the other components of open event like the open event organiser app, and the open event frontend to enable organizers to manage events from concerts to conferences and meetups. The APIs offer 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 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.

The Open Event Frontend

Repository Gitter The Open Event Frontend as the name suggests, is a web app written in Ember.js which consumes the Open Event Server API to give the users a medium to interact with the several functionalities and features which the open event server offers, in an intuitive manner, with a moder UI/UX. It's responsive design allows effecient browsing on mobile web browswers along with large screen devices. While the open event server serves as the backend, all the users including administrators need to interact only with the frontend.

The Open Event Android App

Repository Gitter The Open Event Android App is an android app which allows users to discover events happening around the world using the Open Event Platform. It consumes the APIs of the open event server to get a list of available events, and can get detailed information about them. It is possible to buy event tickets. The app also offers other modern features such as easy check-in using QR codes. This app is meant for the users who intend to browse events and purchase tickets for them as an attendee.

The Open Event iOS App

Repository Gitter The Open Event iOS App is the iOS counterpart of the Open Event Android app, currently in development. The app will eventually achieve the same functionalities as the Open Event Android app, and alloww users to discover event, book tickets, and will use the Open Event Server as the backend.

The Open Event Organiser Android App

Repository Gitter The Open Event Organiser app is intended for the organizers and entry managers who intend for their event to be available in the Open Event Ecosystem. While the Open Event Android and iOS apps allow the users to browse the events happening around them, the organiser app allows creation and management of those events from an organzer's perspective with intuitive features like push notifications, ticket management, and check in using QR codes.

The Open Event Organiser iOS App

Repository Gitter The Open Event Organiser iOS App is the iOS counterpart of the Open Event Organiser Android app, currently in development. The app will eventually achieve the same functionalities as the Open Event Organiser Android app, and allow the users to browse the events happening around them, the organiser app allows creation and management of those events from an organzer's perspective with intuitive features like push notifications, ticket management, and check in using QR codes.

Open Event Web App Generator

Repository Gitter The Open Event Web App generator is an event website generator. 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 with an Open Event Format Specification. 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.

The Open Event Android App Generator

Repository Gitter The open-event-droidgen is a web application that is hosted on a server and generates an event Android app from a zip file in an Open Event Format Specification containing JSON and binary files.You can also access the application through a Rest API. Apps that are generated by the android app generator can be uploaded to the play store and be readily made available, which is of great convenience to the orgazers, as an organizer can generate a ready to publish app for his/her event.

License

This repository is licensed under the GNU General Public License v3. To obtain the software under a different license, Please contact FOSSASIA.

open-event's People

Contributors

aayusharora avatar abhinavk96 avatar agbilotia1998 avatar arp95 avatar aviaryan avatar ba11b0y avatar championswimmer avatar dr0pdb avatar elgayar avatar harshithdwivedi avatar hpdang avatar mahikaw avatar mananwason avatar marauderer97 avatar mariobehling avatar masquerade0097 avatar niranjan94 avatar parths007 avatar pipix51 avatar poonai avatar princu7 avatar rafalkowalski avatar rhemon avatar sanchittechnogeek avatar saptaks avatar schedutron avatar shailesh351 avatar shivammg avatar shubham-padia avatar swati4star avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

open-event's Issues

Introducing Scrum

Please document what different scrum questions and varieties exist and note down the translation into your mother tongue here.

Preparation for FOSSASIA 2016

This issue serves as a public record for the TODOs, plan of action to get open event android app compatible with FOSSASIA 2016 conference data formats. Please modify this post to notify changes.

Participants

@batraabhishek @rafalkowalski @mariobehling @leto @championswimmer @mananwason @SaptakS

Proposed Solution

This is something we discussed and which everybody agrees upon.

  • Set up a server to parse Google spreadsheets and convert to open event compatible data structure
  • Set up the Android app to improve UX and bug fixes. We have decided to use open-event app, it has 2 flavours: froid and googleplay if there are dependencies which are considered against open source principles we should use them only in the Google Play version and mock them out or use a compatible open source tool for froid
  • Set up crashlytics account for google play apk and beta testing as well for nightly releases.

Action Plan

Timeline

week Component People
7 Dec Gsheet parsing script + Android app compatibility, server setup @batraabhishek @creativepsyco @mananwason
14 Dec Crash tracing setup, UX fixes, bugs @batraabhishek @creativepsyco
21 Dec First beta build with Crashlytics for testing @batraabhishek @creativepsyco

@creativepsyco @batraabhishek will the point of contact for coordination, if anything escalates upwards you can also ping @mariobehling.

Communication

Gitter

Sounds Good? Lets discuss them in the chatroom =) And lets get to writing some code.

Roadmap for GSOC 2016 and forward

GSOC 2016 is about to start. And a lot of coding activity will take place on the open-event repos in the coming months. It is good to have a roadmap of broad features we intend to add to these projects.

Tagging all parties involved on this to give their opinion -
@leto @mariobehling @creativepsyco @batraabhishek @mananwason @rafalkowalski @hpdang

Open Event Org Server

  • Access control (event creators, event admins, event speakers - with different editing permissions)
  • Support for Oauth tokens and API keys, so 3rd party app can register and use data
  • Add support for voting talks
  • Support for more information about the event like nearby airport/station, bus routes.

Open Event Android App

  • Automated scripts to generate apk (organisers can build apk without editing/writing any code)
  • Extract API data fetching code into a separate module, and be able to turn that portion into a jar/aar library
  • Support for more information about the event like nearby airport/station, bus routes.
  • Add support for Android Wear, to give reminders about bookmarked events
  • Add support for deeklinks to open in the app (http://event.com/speaker/1)

Open Event Webapp

  • Move to Angular2 (or possible some framework like React/Ember) - with the objective of improving performance.
  • Have theming support. Not only for colors, but more components as well.
  • Possibly extract api functionality into a separate js lib
  • Implement lazy loaders or paginators for speakers and sessions when lists are long
  • Support for more information about the event like nearby airport/station, bus routes.

Feature List and Project Plan for Android App (2015)

Please define the following for your project
a) Feature List (add it to Feature.md)
b) Project Plan with possible milestones (Which features will be implemented at what time)
c) Technologies used

Proposed Milestones

  • Milestone 1, Due by June 10, 2015
  • Milestone 2, Due by June 26, 2015
  • Milestone 3, Due by July 25, 2015
  • Milestone 4, Due by August 21, 2015

Project 3 (Manan): Android App (newly developed) -- https://github.com/fossasia/open-event-android
Also refer to #19

Add .json to the samples

Since we are directly copying the json files from the sample zip into the assets folder of the android app , the samples need to have .json so as to be correctly recognised as json files.
@mariobehling @aviaryan Could you please provide your views on this?

List to dos / differences / incompatibilities to re:data

It turned out that the Open Event JSON was implemented differently in some parts. Please list in a table what differences exist, the reason for the difference and what can still be implemented in the Open Event JSON


So I am gonna jot down which fields in the API we need to change to become comaptible with re:data

Check out the re:data api (https://github.com/opendatacity/re-data/blob/master/doc/api.md) for reference.

/events

  • start_time -> begin
  • end_time -> end

/events/eventid/sessions

  • start_time -> begin
  • end_time -> end
  • Sessions api -> speakers [id, name]
  • Sessions api -> tracks [id, label_de, label_en, color
  • Sessions api -> level [ id, label_de, label_en]
  • Sessions api -> lang [ id, label_de, label_en]

/events/eventid/speakers

  • linkedin,github,twitter... etc -> links [ ]

implement the following

  • /events/<event-id>/days
  • /events/<event-id>/formats
  • /events/<event-id>/levels

check talkfunnel by hasgeek, and discuss if we can include that in the orga server or implement similar functionality

Since we are discussing alternate frameworks with similar goals as open-event, also check out talkfunnel by HasGeek

https://talkfunnel.com/

HasGeek is a major organisation for tech events in India.
funnel is open source as well (written in python), and has a json API endpoint
https://github.com/hasgeek/funnel

Funnel does not actually do everything that we aim to, but it does one important thing for tech events - a forum to submit talk proposals, and a uniform way to upvote/downvote them.

Take a look at the website, it works pretty good.

Google forms, websites, alternatives - What options do we have to collect event data?

To collect data for events, we are using Google forms. This is a convenient solution, but we are currently not able to create multiple relationships, e.g. one speaker is doing to several talks or one talk has several speakers. Also in Google forms there is no way to have fields like "add more speakers".

Is there a way to handle this, e.g. a plugin for Google docs? What other options exist Limesurvey? Are there suitable event systems? What options are there to create our own lightweight service, e.g. a JS site? Pentabarf and Frab are solutions used by some older events in Europe, but they are not "straight forward" and design is outdated.

Syntax issue in FOSSASIA event json

In social_links, there is an event_url field. It should be named as link (Like in OTS and Ehealth json)
This is causing problems with import.

      {
            "event_url": "http://2016.fossasia.org/", 
            "id": 8, 
            "name": "External Event URL"
        }

Issues with FOSSASIA sample

Since I last fixed it, some issues seem to have arised in the FOSSASIA samples. The error I got
when importing it into open-event-dev was the following. I will fix it and the subsequent errors if any and make FOSSASIA sample importable.

File sessions, ID 71, Internal server error

Check and fix issues/potential issues in all files

Event.JSON
There are a few potential inconsistencies in the files, e.g. in this one https://github.com/fossasia/open-event/blob/master/sample/EhealthAfrica/event

  • There is a line "background_url": "/images/background.jpg". This line should be moved above "logo" and renamed "background_image".
  • Call for papers only seems to have - "closing_datetime": null, - , but not an opening date, which is also necessary.
  • Question: Why does the creator need an ID? "creator": { "email": "[email protected]", "id": 1
  • Description field only seems to have text: Can we/How can we have rich-text/html in this field? (same applies to Call for Speakers and Code of Conduct.
  • Version is "0". How is that possible? "version": {
    "event_ver": 0,
    "microlocations_ver": 0,
    "sessions_ver": 0,
    "speakers_ver": 0,
    "sponsors_ver": 0,
    "tracks_ver": 0
  • Why do social links need to have IDs? What if social links of different events have the same ID number?
    "id": 361,
    "link": "https://twitter.com/eHealth_africa",
    "name": "Twitter"
  • Please sort the order of the event JSON in the same logical order as the orga server wizard page, e.g. it is illogical to have the follow sorting:
    "latitude": 52.51074,
    "location_name": "Kemperplatz 1, 10785 Berlin, Germany",
    "logo": "/images/logo.jpg",
    "longitude": 13.37233,

Meta.JSON

Social Links

  • Why do we need it? All data is already defined in Event JSON.

Compatibility JSON/API

  • In the app generators we want to use API endpoints and JSON files in the same manner. Currently I see that there is a difference between API and JSON as there are more JSON files than APIs, e.g. Session_Types. How does that work out?

short_abstract in Session json

Add address in event.json

Define JSON URL the app uses

We can have the app use the JSON file directly from Github, and we need to define at least a DEV JSON file and a PRODUCTION JSON file, where we test stuff out on the DEV JSON and then push out vetted changes to the PRODUCTION JSON file, so we don't break everyone's experience using the app.

I propose a json/ directory with a dev.json and prod.json in the root directory of each event repository. Does this sound reasonable, @creativepsyco @mananwason ?

Feature List and Project Plan for Orga Backend/Frontend (2015)

Please define the following for your project
a) Feature List (add it to Feature.md)
b) Project Plan with possible milestones (Which features will be implemented at what time)
Proposed Milestones

  • Milestone 1, Due by June 10, 2015
  • Milestone 2, Due by June 26, 2015
  • Milestone 3, Due by July 25, 2015
  • Milestone 4, Due by August 21, 2015

Project 1 (Rafal): Python Backend/Frontend -- https://github.com/fossasia/open-event-orga-server -- Open Event Organiser Web Client https://github.com/fossasia/open-event-orga-webclient
Also refer to #19

Proper Time Zone handling

These are code pieces where you must consider the time zone:

  • the event description json must declare in which time zone the event happens
  • the event description json must declare the time zone for the given event times (may be given in GMT)
  • the mobile device has a time zone (conference visitors tend to come from time zones different from the event time zone)

I believe that event dates shall be displayed in the event app according to the local time of the event. But that time may not be the same as the time zone of the device. The app shall be able to handle that.

need to add support for format level and language tables and endpoints

Fix FOSSASIA sample

The FOSSASIA event sample at https://github.com/fossasia/open-event/tree/master/sample/FOSSASIA16 still has a few issues:

  • There are a number of speaker duplicates and each speaker entry is related to a talk. Fix: Merge separate speaker entries and ensure a one to multi relationship (one speaker -> several events)
  • Change tracks to different colors
  • Add sponsor_type sponsors json in all sample
  • Separate name and levels from microlocations name
  • Find any other issues with the sample and fix it.

Twitterwall integration

Mario suggested (#4) to integrate a Twitterwall, which presents latest tweets to the event. We discussed various places where the wall may appear (i.e. at a welcome screen, below a single event view or as spcial 'event wall' view). I would like to point out, how the tweet timeline data can be retrieved.

  • There will be library, provided by the loklak project which can be integrated as jar file
  • The library provides very simple methods to retrieve the timeline, like
Wall wall = new Wall(String query, int maxsize);

.. initializes the library with a query, which represents the search term that can be used to retrieve all tweets, like '#fossasia'. maxsize is the maximum number of messages that are cached in the timeline (= maximum message you want to display on the wall) that you can retrieve with the following method:

Timeline timeline = wall.getTimeline()

.. retrieves the actual view on the tweets, where timeline instanceof Collection<Message> is a sequence of messages. Inside each message you will find all tweet credentials, inclusive the user details. If this method is used, you must track yourself which messages have been arrived lately.

Message message = wall.getById(String message_id)

you can use the wall object as database and retrieve messages by their id. This is especially useful if you track arrival of new messages by id, but don't want to store the complete message referenced by them

Message message = wall.take();
Message message = wall.take(long millis);

The take/0 method would block until the next message arrives (== was tweeted) and then returns the message. Using the take/1 method, the blocking is terminated after at most millis millisecods. If more than one message arrived, then you must call take several times

int count = wall.available();

returns the number of messages that can be retrieved with take/0 without blocking

About images: you probably want to display user images or embedded pictures in the wall. The loklak library will provide direct download links for them inside the messages, but handling of downloads and caching of downloaded images must be done by yourself.

These methods should be sufficient to provide the wall data. If you need other access methods, please describe them. The actual library is not available right now, but this is the plan for it.

Please propose a process for testing

How should we test the app? Currently, I see, that I receive a message "Done", but then it does not work or is wrong, e.g. instead of May 14, I see May 13, May 14, May 15 in the app. These are small things and should be first tested by the developer. How do you suggest to improve the testing?

Feature List and Project Plan for Web App (2015)

Please define the following for your project
a) Feature List (add it to Feature.md)
b) Project Plan with possible milestones (Which features will be implemented at what time)
c) Technologies used

Proposed Milestones

  • Milestone 1, Due by June 10, 2015
  • Milestone 2, Due by June 26, 2015
  • Milestone 3, Due by July 25, 2015
  • Milestone 4, Due by August 21, 2015

Project 2 (championswimmer): Web App -- https://github.com/fossasia/open-event-webapp
Also refer to #19

Wrong sample zip files

The sample zips in the repo for FOSSASIA16.zip is not what is generated from orga server's event export system.

screenshot_20160823_015132

The panel on the right displays the zip exported from event management from orga server.
The panel on the left displays the sample zip that we have in the repo.

This change in the directory structure breaks the generator, so we need to fix this.

Get Open Event ready for OpenTechSummit 2016

Opentechsummit is coming on 5th may. We need to improve the app and the parser to make it ready for the event. @mariobehling can you provide some pointers for the api or the spreadsheet where we can get the data from?

  • Improve the spreadsheet parser written here
  • Fix current bugs in android app
  • Fix event editing rights for the server
  • Work on the iOS app as well to get some detailed info. Right now it shows pretty basic info.

Project Planning - Org Server, Web app, Android App

Based on the work we have done so far, we have come up with a way to separate projects we would like you to work on now. I have tried to sum up different discussions. Please have a look at the following and give feedback and input. @leto Please confirm the following separation as well.

Project 1 (Rafal): Python Backend/Frontend -- https://github.com/fossasia/open-event-orga-server

Project 2 (championswimmer): Web App -- https://github.com/fossasia/open-event-webapp

Project 3 (Manan): Android App (newly developed) -- https://github.com/fossasia/open-event-android

Does this work for you? Please start to work on your project by writing down a list of features and then adding issues with the respective labels.

While you focus on different areas, we still hope to see continuous cooperation among each other and support across the different projects.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.