Coder Social home page Coder Social logo

guluc3m / gul-gultalks Goto Github PK

View Code? Open in Web Editor NEW
6.0 6.0 8.0 1.25 MB

GUL UC3M Technical Conferences Management System

Home Page: http://cursos.gul.es

License: Other

Ruby 61.22% CoffeeScript 0.13% JavaScript 1.53% HTML 0.88% TeX 0.48% SCSS 16.98% Haml 18.77%
gul gultalks rails ruby uc3m

gul-gultalks's People

Contributors

javierhonduco avatar juanramb avatar laparca avatar mvaello avatar queltosh avatar rmed avatar yagop avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

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

gul-gultalks's Issues

bundle install --without development - dont use mysql

To build the app in production environment and test it locally, use the following command:

$ bundle install --without development
$ rails server [-p $PORT] # Port is optional

Now MySQL is used as DB engine instead of SQLite.

Checkbox text appearing below

When proposing an event, the checkbox that a speaker can check in order to ask for a certificate has the text appearing below the checkbox itself (even in same row)

Switching to a new deploy tool

As some of you already know, we are working in the app again, fixing some bugs and some other things that needs a good polish, we hope to be ready for the next gig ;-).

Well, an important thing that needs to be revamped is the deploy method. Until now, we were using Capistrano, but some weeks ago I decided to switch to Mina. I find this much more reliable and simpler to be handle for anyone. One of the best things of Mina is the speed.

Mina is faster than Capistrano because this employs only one SSH connection for whole deploy process, instead multiple connections as Capistrano does. In addition, the configuration process is easier than Capistrano too.

If you desire to help, you can contacting me or pull-request :-)

Thanks.

API isn't working

According to the API, the conferences route is /conferences/:id but the actual is /:id. We could add this one:

  match 'conference', to: 'conferences#show', via: :get, path: '/conferences/:id', id: /\d+/

Since the project uses Friendly URLs, conferences and other models are initialized with friendly. I can't get them by the ID as the API says.

@conference = Conference.friendly.find(params[:id])

To maintain both URLs, we could do something like this, but dunno if there is a better way:

class ConferencesController < ApplicationController
  [...]
  def show
    # Not a friendly url, just the real ID.
    if params[:id].to_i != 0
      @conference = Conference.find(params[:id])
    else
      @conference = Conference.friendly.find(params[:id])
    end

Pagination does not work propertly

The pagination doesn't works as expected. Probably due a early filtering during the retrieving. A clear example is that the magellan is affected by this bug, it should show entire list instead partial pages.

Undefined local variable or method `wizard_status'

Undefined local variable or method `wizard_status'
Strange bug in the event model does not allow the create events.

I am using the Gemfile from the develop trunk and It could be due by gems upgrade.

Rethink Wizard

We should rethink how the wicked gem is being used and maybe try to reimplement it in the "conventional" way rather than using sessions, as they are giving problems most of the times.

Limit number of speakers

Find a way to:

  • Show at least one speaker in the new event form.
  • Show a maximum of speaker fields in the new event form (maybe 5?)

Some things to review

  • Upgrade RoR before Rails 5
  • Add identicons avatar support.
  • Remove nesting from comments
  • Review event forms
  • Show language selector in header
  • Add missing locales
  • Review readme
  • Review API and API docs (check this out apidocjs.com)
  • Update some icons theme (Awesome Icons)
  • Add more info messages between [form] transitions.
  • Merge Activities table with Activities without speaker table into a single table.
  • Show OpenStreetMap properly (desktop vew) 馃挬
  • Update Capistrano or switch to other/simple deployment tool 馃槱 (See mina) (Needs review, asigned to @mvaello)
  • Create release 1.0.1b or 1.5.0b 2.0.0b > 2.1.0
  • ~~Improve/fix meta tags (SEO/Social Sharing) (see ogp.me) & (meta-tags)(https://github.com/kpumuk/meta-tags) (In progress, asigned to @mvaello) ~~ (DUPLICATED)
  • Add token-based event edition (provide link to speaker/s)
  • Add Markdown support for comments and events (@yagop) (implemented by @mvaello)
  • Add preview button during event fill. Show the preview in a simple modal window before submit the event.
  • Improve and fix email messages
  • Convert old database to the new structure to show the past editions.
  • Substitute ActiveAdmin with RailsAdmin or better.
  • Revamp calendar view. (In progress, asigned to @mvaello)
  • Enhance UX and design (In progress, asigned to @mvaello)
  • Cleanup locales and include some forgoten strings. (DUPLICATED)
  • Add GUL shield (the lynx head) in the header (See sprockets-svg) (In progress, asigned to @mvaello)
  • Add statistics page (see chartist-js)

Strong parameters

Since Rails 4 uses strong parameters by default and the app started development in 3.x, attributes should be updated to use strong parameters.

BCrypt::Errors::InvalidHash: invalid hash when running db:seed

On latest commit, development branch (default).

Tried
bundle install
bin/rails db:migrate
bin/rails db:seed
as per the instructions in the README.md

Got:

** Invoke db:load_config (first_time)
** Execute db:load_config
** Execute db:abort_if_pending_migrations
/usr/lib/ruby/gems/2.7.0/gems/activerecord-5.1.1/lib/active_record/connection_adapters/sqlite3_adapter.rb:30: warning: rb_check_safe_obj will be removed in Ruby 3.0
rake aborted!
BCrypt::Errors::InvalidHash: invalid hash
Traceback (most recent call last):
bin/rake: invalid hash (BCrypt::Errors::InvalidHash)
bin/rake: undefined method `reject' for nil:NilClass (NoMethodError)

Then, when launching the server with rails server, the page displays this error:

ActionView::Template::Error at /conferences
uninitialized constant ActionView::CompiledTemplates::ARG

I guest this last error is because it's trying to fetch conferences from db/development.sql, which has the tables created, but not populated (because db:seed failed).

Any ideas what could be the cause?

Roadmap: Planned features

With the aim of improve the app, here go some proposals for future releases:

  • Code clean up and refactoring!
  • Finish all translations
  • Add a new mixed event (talk & workshop)
  • Add install party event?
  • Code refactoring of some hardcoded things, included blocks to helpers
  • Fix annoying Foundation issues[/bugs?] (the switch, among others)
  • Integrate Bower as asset manager Use Rails Assets instead repos for better workflow compatibility.
  • Add statistics public page (check chartist-js)
  • Replace ActiveAdmin with RailsAdmin or better.
  • Convert and export old database to the new structure to show the past editions.
  • Add awesome subeader header (check trianglify)
  • Add favicon and other misc. logos
  • Fix meta tags... (check this)
  • Independent API controller
  • Improve caching (check this)
  • Improve the wiki
  • Put header into partial

Change speaker_contact_info to email

I don't remember who proposed this field name... but honestly just can say that " speaker_contact_info" is a bad name. I believe that "email" could be better for this purpose. Sorry for the inconvenience. 鈾伙笍

Mobile view switch

The switch from the speaker fields in mobile view is not working (and also appears duplicated)

Initial draft requirements

In Spanish. I'm too lazy to translate...

Para que vay谩is d谩ndole vueltas un primer borrador de requisitos ser铆a:

  • Que est茅ticamente no desentone con la actual web del GUL.
  • Que su gesti贸n y administraci贸n sean desde la propia web.
  • Que permita crear/modificar/borrar eventos.
  • Que dentro de cada evento permita crear/modificar/borrar charlas.
  • Que las charlas tengan votos.
  • Que si alg煤n interesado necesita un justificante de asistencia, que lo pueda solicitar en la propia web y que se le genere mediante un Latex (la plantilla est谩 hecha) y que lo lleve impreso para que el presidente o secretario lo firme
  • Que los eventos tengan las opciones (activables o no por separado) de permitir/denegar proponer charlar y permitir/denegar los votos.
  • Que dentro de cada charla haya los campos actuales mostrados m谩s uno que se pide al que solicita la charla con m茅todo de contacto para avisarle en caso de salir elegida.
  • Que permita poner comentarios y que al a帽adirse uno haya la posibilidad de notificarlo por email.
  • Que tenga gesti贸n de usuarios y perfiles. Al menos dos perfiles, uno "root" que pueda crear/borrar/modificar usuarios y otro que s贸lo pueda gestionar eventos.
  • Que permita que usuarios an贸nimos a帽adan charlas, voten, y pongan comentarios mientras pasen un captcha que sea medio decente y que tenga alg煤n control para que un mismo an贸nimo no se vote su charla 20millones de veces o al menos que si lo consigue se lo gane.
  • Que ofrezca un iCal una vez est茅 establecido el calendario.
  • Que ofrezca alg煤n tipo de api para que zoe u otro ente inteligente pueda hablar con ella.
  • Que tenga versi贸n m贸vil.
  • Que sea internacionalizable.

Verifiers roadmap

  • Generate Verifier when creating a new event
  • Generate Verifier when voting
  • Mark Events as active if it has been verified and as inactive when first created through the wizard
  • Generate URL in mail with form gultalks_host/verify?token=TOKEN
  • Activate the event and mark the verifier as verified when verifying an event
  • Update vote count and mark the verifier as verified when verifying a vote
  • Add error view when trying to verify an invalid URL
  • Only show shown Events in list
  • Only send token in mail

Broken validators

The upgrade to Ruby on Rails 4.2.1 looks like incomplatible with the gem 'activevalidators'. Many errors in mare all validators. Any idea or alternative?

Comments in admin

The admin form for events fails (error) before save the updated values.

E_TOOMANYGEMS

I know this issue has not a straightforward solution, but we have, IMO, too many gems.
Maybe we can reconsider some of them!

Future improvements

Some ideas that @mvaello, @rmed, and I have been having:

  • Improve seed data. Add comments, speakers, and so on. And add quite a lot of them.
  • Update to Rails 5.1.X
  • Update all gems. We have locked 3 gems or so which introduce breaking changes.
  • Try to reduce our dependencies.
  • Deploy as soon as possible
  • Improve the test suite right now we are doing really basic testing of the controllers.)
  • Start using a style guide.
  • Get rid of the several n+1s that we have around.
  • Clean up the models a bit.
  • Improve README and basic documentation.
  • Think whether to move off haml.
  • Add visual diff-ing so we know if we have some important regression.
  • Review the other opened issues
  • I think some of the emails are being sent synchronously. Could this be a problem in our case?
  • Deploy to production and improve the deployment workflow.
  • Improve observability in production with error and performance monitoring
  • Compare to a brand shiny new Rails 5 app and see if we still have old stuff lying around

Work In Progress. What's left?

Under these lines it is described what's left to complete the first stable release:

  • Revise events form. (WIP)

  • Event and vote validations. (WIP)

  • Pagination. (FIX)

  • Add a better event and conference status system.

  • Public comments.

  • Improve mailer. (WIP)

  • Customize ActiveAdmin.

  • Fix calendar. (responsive)

  • Add & update some schema fields.

    Misc.

  • Add social buttons

  • Improve style & UX

  • Fix fortunes

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.