Git Product home page Git Product logo

jwmanagement's Introduction

What is JW Management?

JW Management is a highly configurable shift management system, built to power projects like the metropolitan witnessing, construction projects and/or similar.

Multiple Tags

Easily separate different shifts with tags; assign publishers to the tags where shifts can be requested. Also define which publishers receive permission to serve as team-leaders.

Shift Teams

Define one or more teams in a shift. Each will have it's own team-leader. Provide further information for every team, such as a description, a picture with a route, meetings points and more.

Store Room

Manage your store room via JW Management. After each shift a team-leader can report whats been placed. The system then automatically updates the publications' stock with the number of placements taken.

Notifications

Through the powerful notification system, you can be notified on your request's, confirmations or refusals, as well as changes to your shift, with the ability to reply.

For Translators

Simple setup

Setup

  1. (Optional) We recommend downloading and using VS Code (https://code.visualstudio.com), because it supports syntax highlighting.

  2. Download the JW Management repository as zip file (https://github.com/JWManagement/JWManagement/archive/develop.zip) and extract it.

  3. Open the extracted folder and switch into the imports/i18n folder.

  4. Copy the folder of the language, from that you can do the translation (e.g. en-US, if you want to translate english to russian).

  5. Paste it and rename it to the language, you want to translate it to (e.g. ru). Also rename all files in this folder and replace the old language with the new one.

  6. Open these files in VS Code (or your preferred file editor).

Translation

The translation files are built with a "key: value" pattern. You only need to translate the value. Anything NOT translated will be displayed in english (so you don't necessarily have to translate everything).

Submit

Zip the folder again and send an email with the attached zip file to [email protected].

Advanced setup (for developers)

Setup

Please see "For Collaborators" > Setup

Translation

Same as simple setup

Submit

  1. Open SourceTree.

  2. Select all the changes you made and commit them. As commit options use "Create Pull-Request".

  3. Push to origin.

    Now we can see your changes and will pull them into the repo. If everything is fine, the new translation will be available with the next release.

For Collaborators

Thank you for your interest in helping us with the development of this software. Please follow the instructions to setup JW Management in your local dev environment.

  1. Install Meteor (https://www.meteor.com/install)

  2. If not already done, set up your environment for git.

  3. (Optional) Install a MongoDB GUI Tool. E.g. Mongo Chef (http://3t.io/mongochef)

  4. Clone https://github.com/JWManagement/JWManagement.git to a local folder.

  5. cd to the created folder and initialize git submodules:

    git submodule update --init
  6. Install packages and run the application:

    meteor npm install; meteor

    This will take some seconds since meteor now downloads all node modules and NPM packages on which the app depends. After some seconds you should be able to visit http://localhost:3000 in your browser.

  7. Sign up under http://localhost:3000 to create a new user.

  8. Once logged in with that new user, create a project.

  9. Go to the settings page of the project and create a tag. For that tag, create a template week. Click on the template to edit it and add a few shifts.

  10. Go back and to the shifts page of your projects. Click on the blue button in the center and then on "Add new week". Fill out the popup and voila - you got your project and shifts set up :-)

Troubleshooting

Windows (outdated)

If you are on Windows, you may encounter slow build times. One solution is to use the Windows Subsystem for Linux for the server runtime (nodejs), but running the mongodb under Windows. To achieve this do the following:

  1. Install the WSL see Instructions for Windows 10.

  2. Once you have finished installing your Linux distribution you need to install

curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
sudo apt-get install -y nodejs
  • Metor:
curl https://install.meteor.com/ | sh

You do not need to clone the repository again in Linux. The directories and files in Windows are mounted directly with WSL.

Open the Terminal at the root of the project and execute bash. You are now in Linux. Try it. Execute node, then in the node REPL os.platform(). This should give you back 'linux'.

One more thing is needed: mongodb. Meteor installs mongodb for you but in this case we need our own instance of mongodb because meteor does not work or not work in a predictical way in WSL. For example it seems that mongodb in WSL can only be started from /mnt/c. You need to install it anyway so better on Windows.

Go over to the MongoDB Download Center and Download mongodb for Windows. If you choose the ZIP Version you can just unzip it to a choosen destination and add the bin Folder as an Environment variable in Windows. For example C:\Program Files (x86)\mongodb-win32-x86_64-2008plus-ssl-4.0.6\bin. Here is located mongod needed to start the dev db.

With this approach the development workflow is slightly different. You will

  1. Start mongodb (from Windows):

mongod --port 3001 --bind_ip_all

  1. Start meteor (from Linux):
bash
MONGO_URL=mongodb://{yourip}:3001/meteor meteor

jwmanagement's People

Contributors

0xpranjl avatar 51773ellis avatar alexlaux avatar aloosen avatar apastorts avatar codesnippetds avatar dimisiotas avatar e-diehl avatar estoffers avatar jasonraveling avatar marvinzeising avatar mh166 avatar miedzikd avatar muhkuhxy avatar nikodemak avatar pungggi avatar ssb22 avatar studiozandra avatar tim-antkowiak 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

Watchers

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

jwmanagement's Issues

Bild-upload, Browser spinnt bei falschem Fromat

Hi,
in "Mein Profil" > "Bild Ändern" stürzt der Browser ab (zeigt nur noch unvollständige Seiten an, auch nach "Zurück"-Button anklicken), wenn man aus Versehen ein falsches Bildformat (bei mir .BMP) angeklickt hat. Da der Dateibrowser keine Dateiendungen anzeigt, kann es verwirrend sein, wenn man die Ursache dafür (falsches Anklicken) nicht bemerkt hat :-).
Der Fehler tritt sowohl beim IE als auch bei Chrome auf.
Des weiteren zeigt der Internet Explorer 11 bei mir das Verfügbarkeitsfenster nach den pers. Daten nicht an, sondern nur "Urlaub hinzufügen". Wäre schön, wenn das geht, da ich nur den IE am Laptop benutzen möchte :-).
Thomas

Festlegung TL

Muss die Festlegung, wer TL in der Schicht ist manuell festgelegt werden, oder erfolgt das automatisch?
Davon ausgehend, dass schon min. ein TL sich in der Schicht angemeldet hat.

Schichten laden verzögert

Beim Laden der Schichten werden zuerst die Dummy Bilder eingeblendet.
Ich hatte jetzt den Fall das die Dummy Bilder 10 Sekunden blieben bis die Schichten geladen wurden.
Wenn sich 10 Sekunden lang nichts bewegt kann der Benutzer schnell denken da ist was kaputt.
Ein Vorschlag wäre einen bewegenden Lade Kreis auf die Dummy Bilder zu setzen.
Das klinkt zwar trivial, aber solange sich beim Laden etwas bewegt hat der Benutzer das Gefühl das die Seite nicht eingeschlafen ist.

Hochgeladene Dateien nur für Teilnehmer

Ist es möglich das nur Teilnehmer welche eingeloggt sind sich durch einen File Link die Dateien herunterladen können? Wenn man den Link zur Datei hat kann momentan jeder die Datei herunterladen.

Teilnehmerliste läd langsam

Es irritiert das eine weile die Teilnehmerliste leer ist wenn man sie aufruft.
Kann hier nicht ein Lade Symbol erscheinen oder wie in der Schicht Liste erst die Dummy Einträge bevor die Daten geladen sind?

Tag löschen

Wenn ich einen Tag löschen möchte bekomme ich eine Abfrage mit einem Eingabefeld.
Aus dem Text dadrüber geht nicht hervor was hier eingetragen werden soll.
Erst die Fehlermeldung weißt einen drauf hin.

Location

Similar to the meeting points, we could add locations.

If the teams are not being used for routes but for others things, a team could have like a meeting point for the whole shift length, thus a location.
This should not exclude the ability to add meeting points to that team. It should be possible to have all three (start, location, end) together.

Allocation Assistant

The Allocation Assistant should be a mechanism that can either be fired manually by a shift planner or in regular intervals like every end of the week.

The assistant should

  • be able to schedule all teams having the number of requests between the min and max limits and also one requesting team leader.
  • be able to accept requests on a shift when there are already some accepted requests. Only of course, if the number of requests, that came later, wouldn't overcome the max limit.
  • automatically choose a request to accept and decline the others, if there are more requests than allowed by the max limit.

It should be possible to configure the assistant in what it is supposed to do. Like if it should only do the first one of the three tasks described above or only two or all three.

The latter needs a prioritization algorithm. I have two ideas for that:

  1. Loop through these shifts and in each one look for the requester with the fewest accepted requests for this week. If that equals for two or more requesters, it should choose the requester with fewest left-open requests for this week.
  2. Loop through the users, beginning at the one with the fewest accepted requests this week to the one with the most. Every one gets one accepted request, then it starts all over again until no open request is left.

Thoughts on this are welcome.

Three scheduling modes

Extend the system by two more scheduling modes.
This modes should be set for the whole project since I don't have an idea how to handle tags with different modes on the shifts page.

  1. The project administrators don't define shifts, but define the time periods in that the publishers can create shifts on their own shifts. Like Tuesdays from 10 AM - 8 PM.

  2. Like the current system.

  3. Project administrators define shifts, but also directly assign the participants. Publishers on the other hand can't request shifts but only see their assignments and maybe cancel them.

Teilnehmerliste Benutzernamen anzeigen

In der Teilnehmerliste kann ich nicht den Benutzernamen einsehen.
Ich kann zwar im Suchfeld nach dem Benutzernamen suchen, aber er wird mir nicht in der Ergebnisliste ausgegeben. Im Pulldown Menü neben dem Suchfeld kann ich als Option den Benutzernamen auswählen. Dann würde ich aber erwarten das eine Spalte mit den Benutzernamen ausgegeben wird, wenn ich die Option den Benutzernamen auswählt habe. Eine Detail Seite für den angeklickten Teilnehmer mit allen Daten fehlt noch.

Public dummy project

Create a dummy project.
The credentials for the project members should be publicly available so that users can test the system.
Every day this project should be reset.

Week creation automation

Add a possibility to let the system automatically create tag templates in predefined intervals.
For example every 4 weeks. Or every every second week of the month.
This process should be run once a week, e.g. Sunday 12 PM.
If possible, give the ability to create multiple rules for each template.
Maybe like in a modal on shifts page in the template.

Store: Simple Mode

Finish simple store mode.
Automatically create "Bibles", "Books", "Magazines", "Brochures", "Tracts" as publications.
Update team report to contain these publications.
Also update reports page.

Estimate: Kommt drauf an

Neue Woche anlegen an den Kopf der Liste setzen

Ich habe von Januar bis Juli die Wochen angelegt.
Um eine neue Woche anlegen zu können muss ich jetzt weit nach unten scrollen.
Mein Vorschlag wäre die "Neue Woche anlegen" Funktion an den Kopf der Liste zu setzen.

Show phone number in browser

For some less experienced users it would be nice to show the phone number for participants in the team view directly in the browser. Also good for tablet users.

"Reaktion" wenn TL absagt

Wenn ein TL jetzt absagen muss, wird eine Email an die Teilnehmer gesendet, dass die Schicht evtl. abgesagt werden muss.
Diese Email sollte erst kurz vor der Schicht, evtl. am Vorabend um 23:30 erfolgen.
Denn sonst entsteht für die VK eine große Unsicherheit. Die bisherige Erfahrung hat gezeigt, dass bei den größeren Projekten sich immer ein TL noch findet und die Schicht stattfindet.

Rework shift teams ui

If one clicks on the expand arrows in the team header, the image, description and the meeting points are shown. I'd suggest to also increase the height of each users row in this team.
With that we can increase the telephone and email buttons (#13) and show more information like the ones from the popup. This would also fix #32.
We could even show the personal availability plan from the profile of that user and mark his other requests for this week.
Furthermore I'd suggest to always show the profile picture in front of the name.

Congregations

Make congregations to an organizational unit.
Every user has to be in one congregation. We could even add the field service groups as well as the pre groups and foreign language groups. Every congregation can have administrators, that can manage the publishers of the congregation. They are mostly meant to set the pioneer and service privileges. They also should be able to see in which projects their publishers are, how many hours/shifts they spend in these projects, revoke their project permissions or even add or remove users.
A congregation has a name, a number and belongs to a circuit. A circuit overseer should be able to view statistics of the projects in his circuit.
Congregations and circuits are added by the JWManagement Support Team only.

Objectives list

Every project should be able to have an objectives list.
These objectives are currently meant to be a hotel, a vessel or a truck.

There should be a setting to enable or disable publishers to add new objectives.
A project manager should be able to assign publishers on some objectives.
It should be possible to take notes about the conversations in conjunction with an objective.
The publishers should be able to contact a project manager, e.g. if they need a large amount of publications for a hotel.

Finish reports

Numbers on the reports page should be correctly computed.
"Show"-Buttons should open a modal with links to the shifts or users.

Funktion "markieren" von Schichten

Die alte Funktion, eine Schicht zu markieren und manuell die VK über einen kurzfristigen Ausfall per Email zu informieren sollte wieder implementiert werden.
Wenn möglich sollten bei einem fehlenden TL auch nur die angeschrieben werden, die die Rolle TL eingetragen bekommen haben.

Icons für Touch Bedienung zu klein

In der Schicht werden die Bewerber mit dem Telefon und E-Mail angezeigt.
Die Icons sind für eine Touch Screen Bedienung zu klein um gezielt eine von beiden Optionen wählen zu können.

VK Manuell hinzufügen enthält falsche VK

Zwei Dinge fallen mir auf.
Die Liste für das manuelle hinzufügen ist noch nicht sortiert.

Aber in der Liste tauchen VK auf, die für ein anderes Projekt nur freigegeben sind.

Datei Auswahlfenster öffnet sich endlos

Habe unter Infos auf das Icon für Datei Hochladen geklickt. Dann öffnet sich das Datei Auswahlfenster. Die entsprechende Datei habe ich damit ausgewählt und hochgeladen. Sofort danach öffnet sich wieder das Datei Auswahlfenster. Jedes mal wenn ich dann auf abbrechen klicke kommt das Fenster wieder. Durch das Schließen des Egde Browsers mit der Version 38 konnte ich das permanente Öffnen des Fensters umgehen. Den angezeigten Link der Datei kann ich nun anklicken, es kann die Datei jedoch nicht geöffnet werden. Ich nehme mal an das keine Datei hochgeladen wurde, obwohl der Link zur Datei angezeigt wird. Die Projekt Bezeichnung ist qVrQc.

Zurück Button in der Projekt Auswahl fehlt

Wenn ich auf Schichten klicke werden mir meine Projekte angezeigt.
Von hier aus habe ich keine Möglichkeit mehr zur vorherigen Seite zu kommen.
Erst wenn ich ein Projekt aus der Liste ausgewählt habe bekomme ich die Möglichkeit auf die Startseite zurück zu kehren.

Shift planner role for tags

Create a new role for tags.
Made in first place for the third mode of #45, these users should be able to assign publishers to shifts of this tag.

More icons for teams

Make it possible to define what icon is being used by a team.
This should be editable via the team section on the settings page.

I see two options for this:

  1. Manually name the FontAwesome icon (e.g. "user" for fa-user).
  2. Have like a dropdown with preselected choosable icons that the user just has to click on.

The specified icon then is shown in the shift and shiftModal templates.

Team Report: Own Page

Create an own page for the team report.
Optimize the tabs for mobile devices.
Also add type select for publications and maybe even images.

Privacy Policy

Users should have to accept a privacy police on the firstLogin page

Statistics

Graph for every publication/language in store. How often placed/where placed?

How many hours/shifts did a user spend in a defined time period?
How many times did he miss in a shift without cancelled participation?

Improve report page to make it possible to define custom time periods.

passwort reset

Das Zurücksetzen des Passwort geht nicht.
das System findet meine email nicht....

Profildaten

Müssen nach dem Update alle VK ihre Profildaten wegen der kurzfristigen Verfügbarkeit bearbeiten?

Welche Auswirkungen haben diese Einstellungen überhaupt?

Schichtdaten bearbeiten Usability

Wenn ich eine neue Schicht in der Vorlage angelegt habe, bin ich davon ausgegangen das ich nach Eingabe der Daten auf "Schicht einteilen" klicken muss. In den meisten Anwendungen ist man gewohnt auf den erstellen oder speichern Button zu klicken. Vielleicht kann man dem Eindruck entgegen wirken wenn der "Löschen" und "Schicht einteilen" Button in eine separate Zeile dadrüber als Option gekennzeichnet gesetzt wird.

Pfeile zwischen den Schichten

Haben die Pfeile zwischen den Schichten eine besondere Bedeutung?
Wozu sind sie da?
Meine erste Reaktion ist das ich drauf klicke weil ich erwate das sich was ausklappt.

Carts and posters

Make it possible to define carts and posters the store room.
These should be available to set in the team report.
Also there should be statistics #30 available for this. Like e.g. what carts and posters are chosen the most and which one are the people most interested in.

Maybe one could even define which publications are in the cart so the system could tell the last team leader of the day what he has to refill into the cart. This would require the team leaders to tell what they already refilled.

Problem sich in Schichten anzumelden

Hallo,

ich wurde schon von einigen VK angeschrieben, dass man sich für manche Schichten nicht bewerben kann.

Beispiel am 04.03.
Dort waren meine Frau und ich in einer Schicht eingetragen. Dann bekamen wir den Hinweis, dass man sich gern darauf bewerben würde. Die Möglichkeit bestand aber gar nicht. VK konnten sich nicht bewerben, obwohl die Schicht als offen angezeigt wurde. Ich konnte nur über das manuelle Hinzufügen VK in die Schicht nehmen.

Edit shift modal changes

The edit shift modal should be extended to handle changes to shifts in a better way.

  • Start/End: Send an email to alle participants. Also change the times for the meeting points.
  • Tag: Check if all participants have access to the new tag. If that's the case, inform them via email.
  • Scheduling: If changed to "Accept immediately" and the min limit is reached, all requesters should be accepted and a team leader should be set. If there are more requesters than the max limit, maybe use the allocation assistant #43 for that.
  • Team: Inform all participants via mail. If possible, include the new team's picture, link and description.
  • Min: Only make this possible, if it wouldn't be littler than the number of participants.
  • Max: Only make this possible, if it wouldn't be greater than the number of participants. If the new max limit equals the number of participants, decline all other requests and close the team.
    If the new min limit equals the number of participants, decline all other requests and close the team.
  • Delete team: Only make this possible if there aren't any participants in it.
  • Meeting point: Inform all participants via mail. If possible, include the new meeting point's picture.

Anzeige für Teilnehmer

Vielleicht mache ich was falsch.
Ich möchte, dass die Schichten min. mit drei und höchstes mit 4 besetzt sind.
Jetzt habe ich es in der Vorlage so konfiguriert und für Februar die neuen Schichten angelegt.

Jetzt kann ich als Admin sehen, wer drin ist.

Die Teilnehmer sehen aber nicht wer drin ist, sie sehen nur, dass die Schicht orange ist.

Die Verkündiger möchten ja schon gern sehen wer dort drin ist, oder haben sich verabredet. Das war vorher einfach.
Oder ich mache einfach etwas falsch. :-)

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.