anuko-time-tracker-proxy's People
anuko-time-tracker-proxy's Issues
Create a proxy server to act as an API gateway for Anuko Time Tracker
We're using Anuko Time Tracker as an organisational time tracker. It's good product but doesn't have an API and therefore we're limited to it's very basic interface. Had we an API we could develop internally some mobile apps to use it, maybe a Slack command, SMS integration, whatever, but there's no API.
So - we want to deploy a node.js server with an API that will act as the client for Anuko Time Tracker. We will execute this node.js proxy server API commands, and it will act as a browser client for the Time Tracker.
Please use express framework.
Please register a team in their hosted service for development and for being able to understand the detailed requirements:
The server needs to implement only one method: "track-time". This method will receive login credentials and time tracking parameters, with which you can do a login via this form. And once logged in, it should populate and submit this form according to the parameters sent.
Please make the server endpoint configurable (we will use our own Anuko installation in production), and the all system deployable to Heroku.
codemill$200
Add a support for additional input parameter to this proxy server
This server is used as a proxy for the Anuko Time Tracker, a service without an API which we need an API for.
This server has a single method track-time
that was developed against the free hosted version of Anuko. It enables to login to Anuko and submit the time
form, and expose this behavior via a single HTTP POST, hence making it a sort of an API...
By default, Anuko required a project
param when tracking time. It also enables to define tasks
for each project, and we do use this implementation in production. This server, however, has been developed without support for passing a task
parameter and we need to add this support.
For development purposes, I have prepared a pre-configured Anuko account, which is setup the same as our production installation with the task as a required field.
The endpoint is: https://timetracker.anuko.com/login.php
username: ttt-slack-staging
password: 12345678
You'll find a single project inside, and two predefined tasks within this project.
Your task is to make the track-time
method of this proxy server support the propogation of the task
param so in essence, the following POST will result in a record inserted to Anuko:
curl -X POST -d "login=ttt-slack-staging" -d "password=12345678" -d "project=ttt-slack" -d "task=development" -d "start=09:00" -d "finish=10:00" -d "date=2016-03-01" -d "note=helloworld" https://{domain-of-the-proxy-server}/track-time
codemill$20
Change the logic of an existing scraper
We've built a scraper with CodeMill in #1, #3 and #7 and the task is described in detail there.
Apparently, the server we were testing against was from a higher version of what we have in production, and due to legacy dependency, we can't upgrade the production server right now. The page that scraped is rendered differently so what worked in dev and staging doesn't work in production...
So, we need to change the logic of the scraper, so it fetches the relevant project_id
from the bare javascript that is rendered to the page, rather then the DOM. The current logic for (index.js line 28
) looks for an id
attribute that simply doesn't exist in production. I do notice though that both in production and the staging server (provided in #7) there is bare javascript code that is rendered to the page and contains the required project_id.
codemill$20
A small nodejs scraping task
We had an issue with this project that was fixed by a codemill developer, but apparently the task was not properly defined by us, hence we need to solve the problem in another way.
Please read #3 for detailed explanation.
The solution the developer found was to use Anuko's /tasks.php
in order to scrape tasks data. However, apparently in our production setup, the page /tasks.php
is available only for admins, so most users can't use Anuko via this proxy.
I noticed that tasks data is also rendered as JS code into the /time.php
page. The task is therefore exactly as it defined in #3, only this time there's another requirement which is to modify the solution to use scraping of the /time.php
page.
codemill$20
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.