Coder Social home page Coder Social logo

timezone's Introduction

Timezone

Note For the repo for the SaaS app Timezone.io head over to timezoneio/timezoneio. This project is the original, simple version meant to be self-hosted. Please feel free to sign up for free at Timezone.io and contribute issues and pull requests on that project's repo!

Timezone is an application aimed at helping remote teams by making it easier to see where and when their coworkers are. This project was the basis for the larger Timezone.io project and is meant for self-hosting.

Screenshot

Setup

Clone this repo and add a people.json file in the repo's root directory. Timezone codes for the tz field can be found here. Each person object should have data in the following format:

[
  {
    "name": "Dan",
    "avatar": "https://d389zggrogs7qo.cloudfront.net/images/team/dan.jpg",
    "city": "NYC",
    "tz": "America/New_York"
  },
  {
    "name": "Niel",
    "avatar": "https://d389zggrogs7qo.cloudfront.net/images/team/niel.jpg",
    "city": "Cape Town",
    "tz": "Africa/Johannesburg"
  }
]

Configuration

By default, timezone uses port 3000. This port can be changed by setting the environment variable, PORT. i.e. PORT=80 to use port 80.

Deploy

This project is designed with a Procfile to deploy to a Heroku instance. Please check with Heroku's up to date documentation for any latest changes. You should be able to commit your changes in your forked repo (including adding your own people.json file) then run:

  $ heroku create
  $ git push heroku master

Development

You must have Node.js and Browserify installed on your system to compile the project assets. After install Node.js, run:

  $ npm install -g browserify

To run the server and download all dependencies for the project run this in the project root directory:

  $ npm install

bundle.js contains all of the necessary scripts and data for the client. To re-build this file with Browserify run:

  $ npm run build

Now to start the server on localhost:3000 you can run:

  $ node ./index.js

Note: These docs are very basic and need some more love. I'll add more info soon :)

timezone's People

Contributors

bexelbie avatar dcarral avatar djfarrelly avatar msanroman 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

timezone's Issues

Improve README

  • Improve deployment information - for Heroku and maybe other options
  • Add contributing info - watchify etc.
  • Cite and link to projects used
  • Add changelog/versions
  • Add open source license

Able to delete last admin user from team

It is possible to create a team then remove the last admin user from the team.
If admin was only user, navigating to the team's manage page now will display an empty team.

Install guide

Hi Guys,

It would be a good idea if you add a install guide in the README file. Some begginers will find difficulties making it work.

Time oddness when crossing day boundaries

Example:
screenshot 2015-08-07 15 19 34

I think the 18pm for Octa should be 6am on the next day, maybe? Makes sense for Octa to be last, because he's on the next day, but his time will be the earliest in the day albeit on a different day.

Really loving the meeting tool aspect @djfarrelly! So awesome!

Attempt to discover team with no users returns 500

As a follow up to #25, if one attempts to create a new team with the same name as the empty team, it will return a 500 with the following:

TypeError: Cannot read property 'name' of undefined
at TeamCard.renderAdmin (/var/app/current/app/components/TeamCard.jsx:9:29)
at TeamCard.render (/var/app/current/app/components/TeamCard.jsx:21:14)
...

I assume this is a result of attempting to discover the creator of the team with the same name.
Obviously this is unlikely to occur given #25 is resolved, but I thought I'd point it out. ;)

Use Twitter to grab person's photo and recent location/timezone

@sunils34 had the very cool idea of using the twitter api to grab user images, names and most recent location to populate the user data. This would remove the need to update a given person's timezone. It would also be cool to have a way to override the user location for whatever reason twitter is not up to date. We might need a way to look up a locations corresponding timezone code.

A future idea that could be cool is if the app had it's own twitter handle, ex. @Timezone_app and you could tweet at it to update your location, ex. "@timezone_app New York, NY". It could accept a custom name/nickname for a city, ex. "@timezone_app NYC" which would pull the location off the tweet in either case.

Fix server-client rendering

With the latest changes to bootstrapping the page with data instead of bundling the people data with the javascript, React show a warning in the console:

React attempted to use reuse markup in a container but the checksum was invalid. This generally means that you are using server rendering and the markup generated on the server was not what the client was expecting. React injected new markup to compensate which works but you have lost many of the benefits of server rendering. Instead, figure out why the markup being generated is different on the client or server.

We're losing a big benefit of server-client rendering that React can provide, so it's ideal to fix this! The checksums do not match since the time will never match exactly when the page is re-rendered. I think the bootstrapped data shouldn't contain the time param and all timezone math logic should be removed from the views themselves. This will also help the app follow a more Flux pattern, making the views simpler!

Profile edition page not updating after location changed automatically

When moving to a new place and opening up the profile page, Timezone automatically updates the location of the logged-in profile:

image

I've found that right after the location has been automatically updated this way, editing the profile without reloading the page will lead to the location field being populated with the previous location:

image

Not a biggie at all, just thought I'd mention it ๐Ÿ˜„

Add storage alternate to a js or json file

It would be great to move away from the current people.js file which could either grab a config.json file placed in the root directory or use different storage backends, maybe starting with PostgreSQL, which would be ideal for quick heroku hosting.

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.