Featureful-ESS is meant to create a simple dashboard for the Tyler ESS dashboard and Tyler Executime clocking in/out system.
All configuration is done via the ./backend/environment.json
file.
Most values are left empty and are required before deployment.
Key | Description | Default Value |
---|---|---|
LOGIN_PAGE | The login page for Tyler ESS. This provides a starting point for the headless browser. | {NULL} |
MODE | Sets whether the application is running in a development environment or production. Use dev or prod here. It defaults to provide. | dev |
PORT | Sets the listening and operational port within the docker container. This port will be exposed. | 80 |
USER_AGENT | Sets the user-agent that the headless browser will utilize. | Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36 Edg/108.0.1462.54 |
SESSION_SECRET | The session secret is used for verifying the cookie, which identifies what session to use. This should be set to a long, randomized, string. (Up to 99 characters has been tested) | {NULL} |
TIMEZONE | Sets the Docker containers timezone. | "America/Chicago" |
Docker is the preferred installation method.
Utilizing Docker Compose is the preferred method.
- Download the source files.
- Navigate to the source files root.
- Edit the docker-compose.yml
When modifying the included docker-compose.yml
and Dockerfile
, a few errors can occur with Puppeteer. This is a collection of some that I encountered.
Puppeteer can not be run as the root user, and it's better practice not to run as a root user anyways within the container.
Getting an error saying "No usable sandbox" can be fixed by ensuring the following code is within the docker-compose.yml
file:
security_opt:
- seccomp=chrome.json
The chrome.json was found on GitHub via a StackOverflow post.
Ensure that Node and NPM are installed. Installation is beyond the scope of this documentation.
Use npm install
to install all dependencies.
To run the node server, use: npm run start
(or npm run dev
for utilizing nodemon)
- Bugs
- General
- Allow a pay period to be submitted.
- Allow dynamic credentials to be provided.
- Server Side
- Add server side session locking to prevent multiple concurrent overlapping requests by a single user.
- I have NO clue how to be implementing this. Attempting a variable session lock causes issues due to session saving(?)
- Optimize getting data asynchronously and modularly.
- Add server side session locking to prevent multiple concurrent overlapping requests by a single user.
- Client Side
- Add section to display pay period information.
- Create UI for hour accumulation data.
- Style the log better.