GithubHelp home page GithubHelp logo

loomchild / sojourner-web Goto Github PK

View Code? Open in Web Editor NEW
50.0 4.0 6.0 8.56 MB

FOSDEM conference companion PWA

Home Page: https://sojourner.rocks

License: GNU Affero General Public License v3.0

JavaScript 50.41% Vue 47.47% HTML 1.56% CSS 0.55%
pwa vue fosdem sojourner conference netlify offline-first

sojourner-web's Introduction

Sojourner Web

Netlify Status

Sojourner conference companion PWA

Requirements

  • Node 20.x

Build

Download node dependencies:

npm install

Run

Start the local development server:

npm run dev

Test

Launch style check:

npm run lint

Launch unit / integration tests:

npm run test

Deploy

Static application can be generated into dist/ directory using:

npm run build

You can test it locally by running:

npm run start

The deployment happens automatically to Netlify, nothing specific to do.

Note: use annotated tags to make them visible on About page.

Miscellaneous

Handling images

Resize PNGs using Tiny PNG: https://tinypng.com/ This could be done with GIMP, but unfortunately it doesn't preserve transparency when converting PNGs to indexed mode.

Schedule

CORS

To configure storage to allow CORS, see cors configuration in documentation.

sojourner-web's People

Contributors

loomchild 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

Watchers

 avatar  avatar  avatar  avatar

sojourner-web's Issues

The refresh notification is nice but it showed almost all the time

Probably because the schedule was changing often. This made me think, why need the notification at all? Simply download the new schedule in the background and update it when done, no need to ask me for confirmation (I can't think of a use-case where I would not want the most recent schedule).

Feedback from @cimm after FOSDEM'20 talk.

Reminder to refresh schedule, based on HEAD

This seems to work with date in the past:
http https://www.w3.org 'If-Modified-Since:Sun, 7 Jan 2018 13:00:00 GMT'

My app uses the "if-modified-since" HTTP header to determine if the schedule actually changed and download the new version. If the server automatically regenerates it every x minutes, then this optimization is useless. So I would also recommend that all dynamic data should be provided in separate APIs/files.

Auto-switch to the current day

On Sunday I constantly had to select the second tab in the bookmarks section since it would default to
Saturday. Small UX improvement.

Feedback from @cimm after FOSDEM'20 talk.

Enable persistence on iOS 12.1.2 fails

Any idea why I can't enable persistence? I've created a bookmark on the home screen and launched the app from it. I can see that it uses 2.7mb of storage in the Mobile Safari settings.

Migrate to webpack 4.5+

This way I can use spread operator in components (see webpack/webpack#5548).

Initial tests require upgrading webpack-dev-server and adding webpack-cli dependency. But there are still errors.

A "my next talk" shortcut on the homepage

Just an idea but at the end of a talk, I often opened the app to see what's next which requires a lot
of scrolling. Would be nice to have a "your next presentation is X in room U1.22 and starts in 20 min" or something.

Feedback from @cimm after FOSDEM'20 talk.

Show overlapping talks

Difficult one but the bookmarks section does not show when talks overlap. I often had a talk from, say 14 to 15h and another from 14h20 to 15h or so. It's fine but difficult to spot in the UI. Not sure if this is
easy to fix.

Feedback from @cimm after FOSDEM'20 talk.

Indicate the current time in the bookmarks section

The first 2 or 3 bookmarks are fine but later on the day I had to continuously scroll to the current time. This is the single most important feedback I can give you. Maybe grey out the talks that have started or/and indicate the current time with a horizontal line as Google Calendar does and auto jump to that time in the bookmarks list?

Feedback from @cimm after FOSDEM'20 talk.

Report number of people watching a stream

Could be done by using heartbeat function. Passing URL of stream as param.
For example every 10s, if stream is being played.
I could store hash of IP as key.
Then there could be periodic function that retrieves data from say last 30s, to create a record with stats per URL.

Investigate the issue with temporarily disappearing bookmarks

Seems to happen when connection is lost during initialization. Perhaps store a copy in localStorage?

I don't worry too much about persistent storage anymore - perhaps I should look into this again? Perhaps settings screen when I can activate it, which in turn will trigger the system ask?

Speaker List

List speakers, fetch their infos (photo, description, contact?) Both special list screen as well as clickable links on events.

Could be useful for both FOSDEM and FlowCon.

"What's happening" screen

First of all, thanks for the app! I've used it for FOSDEM'20 and found it super convenient. I will likely use it in '21.

This year, several times I found myself wanting a list of talks that are either happening right now or are about to start (e.g. I wasn't able to get into the room I wanted or I lost interest in the talk I was at). I think it'd be handy to have a separate screen for this. What do you think?

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.