Git Product home page Git Product logo

newdle's Introduction

Indico CI Status License Available on PyPI Made at CERN!

Indico is:

  • πŸ—“ a general-purpose event management tool;
  • 🌍 fully web-based;
  • 🧩 feature-rich but also extensible through the use of plugins;
  • βš–οΈ Open-Source Software under the MIT License;
  • made at CERN, the place where the web was born!

A sneak peek of Indico

What does it do?

Indico's main features are:

  • a powerful and flexible hierarchical content management system for events;
  • a full-blown conference organization workflow with:
    • πŸ“’ Call for Abstracts and abstract reviewing modules;
    • πŸ“ flexible registration form creation and configuration;
    • πŸ’° integration with existing payment systems;
    • βœ… a paper reviewing workflow;
    • πŸ—“ a drag and drop timetable management interface;
    • 🎫 a simple badge editor with the possibility to print badges and tickets for participants;
  • tools for meeting management and archival of presentation materials;
  • a powerful room booking interface;
  • integration with existing video conferencing solutions;

A more detailed list can be found here. There is also a video!

I just want to try it out!

We've got a SandboxπŸ§ͺ!

Browser support

These are the minimum versions of major browsers currently supported by Indico. We try to target all modern browsers as much as possible, but only issues detected on those will be considered at critical level.

Firefox
Firefox
Chrome
Chrome
Safari
Safari
Edge
Edge
127+ 125+ 17.4+ 125+

However, if you have an issue with a browser on this list, please feel free to open a bug report.

Getting Indico

Information on how to get the latest release can be found at the project's web site. There are installation guides for different systems available in the project's documentation.

Contributing

Indico is the result of the collective work of more than 100 different developers, translators and usability specialists of many nationalities. You can be the next one - read our Contribution Guide if you'd like to help out.

You don't need to know how to write code in order to help!

Roadmap

The full roadmap is available on the project site.

Community

The main meeting points for the community are:

We follow CERN's Values and the principles established by CERN's Code of Conduct.

History

This software project was initially funded by the European Union's FP5 programmeπŸ‡ͺπŸ‡Ί, in what was called the Integrated Digital Conferencing Project, or just InDiCo. CERN was responsible for the development of the "Make-a-Confererence" workpackage (inspired by an already existing system called CDS Agenda, also developed at the Organization) which would then become what we nowadays know as Indico.

We have since stopped using the InDiCo acronym, as it no longer reflects accurately the nature of the project. The word Indico now has no particular meaning other than the product's name.


Made at CERN
Take part!

Note

In applying the MIT license, CERN does not waive the privileges and immunities granted to it by virtue of its status as an Intergovernmental Organization or submit itself to any jurisdiction.

newdle's People

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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

newdle's Issues

Add support for timezones

Dates/times should be already timezone-aware in the backend, so not much should need to be done.

  • We should add a timezone selector in step 2, which could default to the user's client timezone;
  • When creating the newdle, we should send the selected timezone along with it.

"My newdles" page

A page listing all the newdles the user has created and their current state (finished, ongoing, number of answers...).

Improve "change xxxx" options in last step

They currently look like this:

image

I think it's not very readable and we could probably come up with something better. One option would be two buttons, one with a one-arrow icon and the other one with a "fast" forward double-arrow icon.
I also think that making step indicators clickable would help a great deal with UX.

image

Component: Create Newdle

This is the page for creating a new...dle. While we don't have the components yet that should go there, we can put placeholders for them and setup the CSS to arrange everything nicely.

Step 3 - Finalize newdle

At this point we should ask the user for the event's title. We should also tell the user that the participants will receive an e-mail once they confirm the creation.

POST /api/newdle should be called with the filled in info (also from the previous steps) and then the page should change slightly to reflect that fact that the newdle has been created.

image
image

Reset Newdle creation

Right now it's impossible to reset the current state data without either creating a newdle or reloading the page. If the user wants to start from scratch, they should be able to.
An option could be to add some 'beforeunload' logic that triggers also whenever someone tries to access /.

E-mail participants

Participants should receive an e-mail with a unique link to their answer page.

"Newdle summary" page (basic page only)

This page should serve both as the "final page" after a newdle gets created and something the creator can come back to to see the status of the newdle. It should display:

  • a summary of the participants and selected options as well as their choices;
  • the link to the newdle that can be shared with the participants;

image

image

Component: Navigator

  • Shows in which creation step you are
  • Shows a title/description of that step

Could either be generic (props: steps, current, title, description) or specific to the steps we have (props: step). Generic is probably cleaner since that way the parent component handles the data shown in it.

Component: Calendar

This is the calendar (react-dates?) where you select a day on which to see participant availability & add time slots.

Days that have time slots should be highlighted so it's clearly visible which days are used. Removing the last time slot from a day should remove this highlight.

The active day should be highlighted differently regardless of whether it has time slots or not.

Nice splash page

We need some sort of "welcome" page that visitors will see once they open the tool.
Please, let's discuss some mockups beforehand.

Component: Timeline

Displays the timeline listing all participants and their availability. Each participant will be another component (Participant) that's shown inside the Timeline.

Improve README

Some things which are missing:

  • app logo;
  • badges (only TravisCI for now?);
  • small intro saying what the app does;
  • CERN footer like the one we have on the Indico README;
  • ... any others?

Add newdle creation API

Basically something like POST /newdle/new, which creates a new newdle with given participants (if any).

Component: Participant

This is a row in the timeline showing name, avatar and availability of a participant.

image

Component: User Menu

Main UI is an avatars (using Gravatar, with https://ui-avatars.com/ or somehing similar as a fallback)

When clicking it, opens something dropdown-ish containing:

  • Login/Logout (just show one for now and keep the other one hidden - we'll update that once the login code is ready)
  • Your full name/email?

Or do we want to show something completely different while not logged-in? Probably something to see later; for now having a Login action in there is the easiest option.

Add database models

  • Newdle (or some more generic name): stores information such as creator, duration, timezone and final date/time. Time slots can probably be stored in JSONB.
  • Participant: linked to a Newdle, stores name etc. and has a JSONB column for the user's answers.

Why JSONB for time slots / answers?

  • Modifying a Newdle is not planned for now, and it would be an atomic operation anyway. So there is no need to edit/add/remove individual time slots.
  • When a user answers, the availability is for a given date/time (which would not change even if that time slot was moved), so storing it as such is more natural than a time slot ID.

Answer page: Improve timeline

  • expand timeline when newdle has time slots out of default hours range
  • make sure time slots that end at midnight are displayed properly

Newdle creation: display number of created time slots

Currently the user does't have a good overview of selected timeslots
The idea is to display the number of all currently created time slots on the page below.

image

We could also consider listing chosen time slots (simple list with dates and times)

Answer page: allow day transitions

This can be achieved in two ways:

  • "Back and forth" arrows, which should be added in accordance with the mock-ups;

image

  • Clicking on a day, just like when setting up a newdle;

Better answer editing UI

It's already possible to edit an answer by knowing its URL. However, the UI is not very clear.
I suspect, however, that we will need some way of figuring out whether it is the first time the user is answering that particular newdle, so that we can show the button as "Save answer" or "Submit answer", for instance. Rather than adding yet another column to the Participant model, we could just check whether answers is empty. Opinions?

Send e-mail from "final" page

We should add a button next to "create event", which would send a simple e-mail to all known participants whose e-mail address we know about. The mail should just announce what the final date is.

Answer page: anonymous participant

Right now we are required to have a "participant code". In the case of a user who is given the link to the newdle, we won't have neither their name nor availability. We should provide a page which asks for their name and shows no availability info.

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.