[opensuse-project] GSoC proposal forthe idea of OSEM Event Spalsh Page
Proposal for Idea of Event Splash Page for Organisers & Visitors in OSEM Introduction: Currently, the Open Source Event Management application takes care of all possible details about the event such as schedule, registrants, volunteers, call-for-papers, rooms, tracks and many more.But these data are not displayed properly to the visitors.Clearly, more such features could be added for an event as per the need of the admin, but proper focus should be given to display the statistics of the event to the visitors.This is the key point which decides the success or failure of the event. So as per the idea there should be an event splash page showcasing all the details like no.of visitors, sponsors,venues details with map, speakers with their brief info, keynotes, schedule in the chronological order, a small box specifying updates related to the event. Also the proposals submitted so far by the registrants should be displayed. Project Goals: First I will aggregate all the event related data in events page, that is every event will have a separate page. All the details related to the event will listed in categorised manner, also the statistics will be maintained in the same page about the no.of visitors etc. deciding the how big or successful the event will be on the particular day. There will be an event splash page for organizers as well so that they can keep track of the events and events related activities. Then I will work on the HTML & CSS side of it mainly using bootstrap framework to make the event page look more presentable, the one on the openSUSE Summit page. Then there are various design bugs and validations bugs which I am currently working on and will try to remove in the future developments of the project. I will also to integrate metrics using google analytics to find out no. of visitors visiting the event page, tracking no. of clicks on various links etc.(plugin) I will implement real time notifications using socket.io(http web sockets),that is using Node.Js and Redis.This will have a admin panel of creating notification and the user will recieve notification in a real time manner just like in Google+ or Facebook without refreshing the page.There is this github repository which I will use as reference https://github.com/thoughtshop/rails-node-redis-pubsub. I will also integrate a timer using JavaScript which will show how much time is left for the event to occur. Since the application is using Devise, I will also integrate social login using Google, Facebook, Twitter, LinkedIn etc.This can done easily because the gem has support for multiple carriers and there is only one single account for the person. Using Twitter integration I will display the tweets that are related to the event,that is the tweets marked with # tag of the event will be displayed in the event page,so that it will give the live stream of what is going on in the arena. Using facebook open graph integration we can post open graph stories to users timeline saying that this person is going to an event, this will be a great deal of publicity, also using the invite plugin the user can invite his/her friends. These are some goals which I wish to achieve this summers.These are goals are not such that it cannot be met in a span of three months, because whatever I have written above I have already implemented in live projects and in my own pet project. Implementation: For the first one which is most important, I will create a controller called Events which will be outside of admin,as this will be for visitors.Now I shall write actions for show(to display the details of the event), also an action called event_statistics(to calculate the no.of people going for the counter).In the routes.rb I will create a route which would be events/show/:event_name(event name in parameterized format)/:id .This is RESTful routes, in the controller I will query the DB with this event id and get data what ever is necessary, the rest is all ruby.And then like this other routes will be created respectively for other actions.In the view I shall use one single page which will be scrollable and will be divided in different sections.In the header there will be tabs to take the user to different parts of the page, http://summit.opensuse.org/#program. For the second one which is the event splash page for organizers, would be same as the but this would be simple in the frontend as this belongs to admin panel.Using bootstrap nav tabs there would be several tabs like Registrants,tickets,Volunteers,Events and so on.So in the backend there would be seperate page for everyone.In the Registrants page there would be no. of registrants and no. of attendees.Similarly, there will be events tab containing no. of events submitted,accepted.So I would query the Event and related models so as to get all required data in the instance variable(@variables) so that thy are available in the front end.Same goes for volunteers,tickets and social events tab. For implemetation of real time notifications I’ll use the above mentioned github repo.Basically, I will use Redis famous feature Publish/Subscribe service for sending and recieving notifications.So whenever a user registers for an event he/she will be subscribed to the Events_Name channel(say).Now whenever a admin needs to notify people, he will create a notification and that will be published in the Events_Name channel, so by this all the people subscribed to this channel will recieve the notification.This will be implemented via sockets using Node.Js, for this Node and Redis should be installed in the remote server. I can start with Google login.First a google application is needed, this generates a api_key and api_secret this is copied in devise.rb.Apart from User model we also need an Authorization model which will store the carrier details like provider,secret(generated by devise),token received by the OAuth and some other details.We would also need the omniauth_callbacks_controller which would be inherited from Devise::OmniauthCallbacksController and in this the authhash received is passed to the user model.Now first there will be a check in authorization.rb that auth.provider and auth.uid exists or not using first_or_initialize helper .If not then the details are entered in user model.Now if the details are incorrect, that is if the validations fail we need to save the current_user attributes in a session variable, so that the user can re-enter the data missing and proceed accordingly.To do this we need to override a class method in user.rb call new_with_session(params,session).Now if the session exsists we create a new user with the same user attributes and validate this user object.If the session doesn’t exsists then we follow the normal devise procedure by writing super. This thing is simple we just need to create a twitter application and use twitter gem to make api calls to twitter open graph to get tweets based on hash tags. This thing is implemented the same way, we need to make Facebook application and ask read write permissions from the user.With the access token we receive from Facebook endpoint we use that with Koala gem to api calls like put_connections to post to users’ friends timeline. Timeline: For the first 2 features I will complete by June-5 that is around 2 weeks to completely wrap up everything related to models and views for event splash pages.I would take so much time to figure out and code the front end part. This thing(user notifications) is already done by me so I will complete this within a week around June 13 Setting up a perfect login without any glitches would consume time so I would take around 2 weeks to complete the login flow for all carriers July 1-2. Setting up Facebook and Twitter integration is implemented in the past so I would complete this by july 7-9 (approx) The last 2-3 weeks I would want to polish things of what i have done.Test every feature rigorously before it rolls out to be used by users. About Me: Currently, I am pursuing B.Tech in Information Technology,from National Institute of Technology, Durgapur. I love web development and the new emerging technologies. I am an efficient learner, I may not know things about a new technology but if need be I would learn and deploy it in no time.I have a 1.5 years of experience in Ruby on Rails framework.I started working for a startup in my 4th semester Flixstreet(https://www.flixsreet.in/about).I also worked as an intern for Getechoed(http://www.getechoed.com), both the startups are in ROR.Recently, I started working for my own pet project and has come to stage where the web application has a sharing piece like that of Diaspora, a chat engine(built in node,redis and ruby) http://www.67street.in which is also in ROR. When I saw the GSOC idea for adding features to OSEM, I really liked it and decided that it’s my only chance to contribute to opensource community by learning one thing properly.I am solving issues and reporting bugs also solving them to make OSEM even more better and usable by more people. email_id: gopesh.7500@gmail.com irc_nick: gopesh_ contact_no: 9051800354 github: github.com/gopesht Gopesh Tulsyan ROR Enthusiast, 3rd Year Information Technology, National Institute of Technology, Durgapur -- To unsubscribe, e-mail: opensuse-project+unsubscribe@opensuse.org To contact the owner, email: opensuse-project+owner@opensuse.org
participants (1)
-
Gopesh Tulsyan