GithubHelp home page GithubHelp logo

savagelearning / machete Goto Github PK

View Code? Open in Web Editor NEW
17.0 9.0 17.0 58.17 MB

A web application for managing a day laborer referral organization. Built using .NET Core MVC, Entity Framework Core, jQuery, Datatables (datatables.net).

License: GNU General Public License v3.0

C# 46.78% CSS 3.09% JavaScript 36.80% HTML 11.65% TSQL 1.45% Dockerfile 0.06% Shell 0.17%

machete's Introduction

Machete

Build status Join the chat at https://gitter.im/machete-project/Lobby GPLv3 license

Machete is a web application that manages a day labor referral service. Machete tracks work orders for employers looking for short term, casual labor. It also provides a means for matching laborers with specific skills to requests made by employers for skilled labor.

Machete performs the following tasks:

  1. Stores basic contact information for all persons associated with the Machete system
  2. Stores biographical and membership information on its members
  3. Records member sign-in using a identification number through either a bar code scanner or the keyboard
  4. Captures employer, work order, and work assignment details into a relational database
  5. Provides a fast, flexible method of dispatching workers to work orders based on English level, skill level, and employer requests.

Machete Workflow

Setup scripts

There are a few setup scripts that can help get you up and running.

./Machete.Util/sh/new-db-use-with-caution.sh
Disposes of whatever database container you have running (as long as you have the environment variable for it set, which the script does), and create an entirely new database container.

./make_env_file.sh
This file will create an environment file that you can source to set certain variables. Only needed for OAuth development.

./completely-clean-build-and-run.sh This file will:

  1. Disable msbuild 're-use' in dotnet.
  2. Prompt you to create the environment variables file if it doesn't exist.
  3. Source the environment variables file.
  4. Clean up any existing build(s).
  5. Initialize the submodule, if it isn't initialized.
  6. Start the Angular webpack server as a background process.
  7. Build and run Machete.

People who use this free software include:


Casa Latina Portland Voz NDLON

machete's People

Contributors

brian-ritchie avatar chaim1221 avatar dependabot[bot] avatar esteban-gs avatar gitter-badger avatar hazardouspeach avatar jcii avatar kcbridges avatar mahzaib avatar nathandrex avatar novemfive avatar orachaim avatar

Stargazers

 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

machete's Issues

Change WO->WA opening behavior based on status

When a work order is pending and opened, the WA should go to the create tab. for other WO status, go to List.

Should profile volunteers as they use Machete, determine what reduces their clicks and makes them more efficient.

clarify English level drop down

-Would be helpful to add explanatory notes to the english level drop down (ie - 0 - no English required, 2 - level required for jobs requiring English for general instructions, 3 - level required for jobs requiring English for specialized instructions. Also, check with DWC if they're still using level 4, and if not, remove it from the drop down.

Worker.iDWC & Worker.iHHH need better abstraction

Some components of Machete are specific to the original customer. Their two programs are 'day worker center' (DWC) and 'household helpers' (HHH). These names should be configurable.

The Worker has an integer that designates the Program.

Look for:

TODO: Remove Casa specific configuration. needs real abstraction on iDWC / iHHH.

ActivitySignin test should create a variable number of checkins (from valid check-ins)

Can use this to go back to Activity List and verify that the variable number of Signins matches what is listed in the count in the List. Should also validate that row is correct using date and other information from Activity creation.

The variable number will simulate real use, and make the reports I have to create more representative of real reports.

Notify on user timeout when making JSON call

When a browser connection is open for a while, it may timeout. If the next call is a JSON call, the user will not receive an error--the client just waits forever.

Need to:
1: report error
2: re-direct to login page

i18n for Config UI

i18n Resource strings for Activity Data Entry, format wage string as currency

Dispatch worker to multiple jobs

worker goes out on Chambita; returns; gets new job. needs to be able to go out twice.

Current 'orphan worker' system is functional, but may not be usable for different customers. Need to simlify in Dispatch GUI.

Activity Registration Table Leaks Implementation

The page for signing in workers for activities, at the bottom displays "Showing ([#] to [#]) out of [#] entries - filtered from [#total_number_of_siginins_for_all_activities] total entries", when it would really make more sense if it was "Showing ([#] to [#]) out of [#] entries - filtered from [#total_number_of_siginins_for_THIS_activity] total entries". It looks like behind the scenes that table pulls all the signins from all activities, and then filters it down to the ones that apply to the activity being displayed, but that is a detail of implementation we don't want to show the user.

Document Admin tasks

  • Installation & Upgrade Procedure
  • View creation instructions
  • Report account creation instructions
  • Install application pool instructions

strip spaces from user names on registration

Machete uses the default MVC Forms authentication module (in the aspnetdb database) to create and manage users. Space characters and other characters should be stripped from input with a ValidationAttribute on the Model.

Generalize documentation

Remove customer-specific references. References to SSRS and reporting. Some data in screenshots needs to be fuzzed or the images re-taken.

adding a "PF" option to transportation costs

Some of the workers choose to pay for the Casa Van and it's noted on the work order as "$5PF" and what I've been doing so far is just noting it at the bottom, but I think it would be better if were noted directly in the transportation costs section, maybe with a "PF" just as an option to the side of the transportation cost, or maybe as it's own drop-down option (because I've only seen it when it's $5 PF).

ActivityTest should query for valid dwccard numbers

Test should query the worker table using DbTable and get existing valid dwccard numbers for ActivitySign-in.

Functionality will be re-used for WorkerSign-in test

You can access the database using the Service classes I've created. There is an example here, at the bottom of the page:
https://github.com/jcii/machetePrivate/blob/master/Machete.Test/IntegrationTests/Services/WorkAssignmentServiceTest.cs#L226

Once you instantiate the service class, the methods will let you query the table. You can use LINQ to quickly filter records based on their properties.

Create selenium test to verify that unauthenticated access shows only limited Activity set

Activity/Index.cshtml

The Framework will limit the rows of activities available based on whether the session is authenticated. The test should

  1. create an Activity that should be visible (re-use existing methods in sharedUI.cs) from an authenticated account, then
  2. log out of the manager/administrator account
  3. open the activities page4. verify that all activities shown fall within the limited time scope (+/- 1 hour from current time).

"create event" tab disappears after editing and closing

not exactly sure what triggers state of bug; think it's create->edit->close...

ALSO: Need to refresh tablabel when saving/changing tabs

When the alternate ID, it's possible that the tab label may be inaccurate; this will allow two different tabs to be opened for the same record, causing possible data loss.

macheteUI-tabs needs to update on edit or other record change

macheteUI uses jquery for tabs. The tab label is set when the tab is first created. The library does not consistently update the label when a record changes.

An example of the label updating exists on the Person page. When a worker is created, the tab is updated from 'Create Worker' to 'Worker Information'. This needs to be normalized into the macheteUI library.

A UI test should also be created when this functionality is normalized.

drop-down menu for transportation costs

[From Gabi Sanchez-Stern]

This is an idea I had after doing a bunch of work orders and trying to find the most efficient and quickest way of filling them out, so it's more an idea about making it easier for the volunteer filling the work order out, than anything else. So, in the cases where a worker uses the Casa Latina van to get to the worksite and there is a transportation cost (and sometimes an extra fee), instead of having it so the volunteer has to manually fill in the fee, I thought it could be easier if it were just a drop-down menu with a few choices, since there are only a set number of costs for the van (5, 8, 15..I think), and also only a set number of extra fees (5, and 7 I believe). The only reason why I think it will be easier this way is because the rest of that section is all drop-down selections and it might just be easier for the volunteer if we kept it in a consistent format--so they're just using the mouse to click, click, click, instead of how it is now where it's click, click, enter text in the boxes.

Only allow van drop-off during certain times

(from J.Chen)
-It would be great if the system didn't allow the volunteer to schedule a van drop off after the cut off times (I think 10:30 on weekdays and 11 on Sat?). I scheduled one by accident and had to call back and fix the mistake...

Datatables "processing..." progress bar should stand out

The Machete UI uses a javascript plug-in from Datatables.net

The default progress bar is hard to see unless you have quick, clear eyes. Read through Datatables docs and figure out how to replace it with something more obvious.

Activity sign-in test should attempt to check-in a sanctioned worker.

Sanctioned workers who attempt to sign-in for an activity are given a notice. Their sign-in is not recorded. The test should expect the sanction notification and validate that the notice was displayed. It should also validate that no sign-in record was created for the current activity.

@brian: As you're dissecting Activity Tests, verify that this functionality works.

Activity Data Entry UI tweaking, i18n

Need to insert the Resource strings, put control on side-to-side arrows.
i18n Resource strings for Activity Data Entry
replace ACT-IN-TABLE, arrows with text.
Search boxes need to resize

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.