-
First impression page???
-
trim trim trim make pretty per Z.
-
Photos need to rotate
-
Consolidate Front Door and Access Control items?
-
Enable log notes and files to tasks, not just clock entries?
-
Ticker for owner with loggername to see all activity at properties.
-
By-item view especially should have copiable info messages
-
Links should default to an item so contractors start at the item they are supposed to work on and remain in that item unless they click out.
-
Gary house to frontdoors.
-
User change password
-
improve the overall structure / clean-up?
- Consider consolidating frontend DB actions to separate file before restructuring pages per chatgpt suggestion? Partially done already.
- DB interaction standardization
-
Add Delaware County addresses
-
enable receive payment from owners.
-
Pre populate front door on creation based on size and standard questions? Sump pump? Gas? Propane? Humidifier?
- Owners manage access to properties. Owners can:
- See list of all front doors under their ownership. SelectFrontDoor component?
- Set passcode for front doors under their ownership by creating links in accesslinks table.
- So, URL like http://127.0.0.1:5173/frontdoors/${lnkid} should prompt for a passcode to grant access
- If PromptForName, allow entrant to enter a name or select from past guests after the passcode is entered, like a 'guest book'. Name would get logged with all notes logged in str5_log.
- Generate unique links for one-to-many properties with a single passcode (like a very customizable master key). Such a link grants access with only authentication and no identification, but link should be associated with a creation date, owner-definable text description like, "HVAC guy's link", owner-definable expiration period anywhere from an hour to days to a year to forever, and also a "prompt for name?" so the link can optionally prompt each entrant to self-identify.
- So, URL like http://127.0.0.1:5173/frontdoors?289&300&400 or maybe its own id like http://127.0.0.1:5173/frontdoors/keyid=12345
- Such a link would show a list of front doors similar to the owner view... another variation of SelectFrontDoor component?
- exit front door goes to link's list of front doors, remain 'logged in' to see the link's access list of front doors.
- Search for properties to add to their ownership.
- Initially, "ownership relationship to property" will be determined manually by calling me the developer then later some other way.
- The people table needs to have an email field and maybe another field identifying if it's just a "name in the guestbook" or an actual unique individual id expected to be the owner of some properties.
- User Level Interactions
- Documentation: single item view to make text notes, view and upload photos, PDFs, files
- Inspection: list of all items with status and ability to mark complete or add to-do tasks.
- To-Do List: todo list for the property.
- All Notes: read-only text of all notes and files associated with the property.
- Manage Items: Add or edit items to the property.
- Advanced Interactions / project management (within front door, then per invoice, also some completely outside front door like materials)
- Job Estimate
- Job Materials
- Job Log
- Edit Checklists, materials lists (need to be able to make and view notes about each step or job to review every time you start a step.)
- All materials list
- Scheduling view for planning work dates
- Dev views?
- worker views?
-
If no natural stopping point, should be one step
-
Steps can be kinda long
-
Steps should divide jobs as much as possible to facilitate estimating without getting in the way of doing
-
if part of step could be often excluded by itself, should be separate step, like run wire to outlet is either necessary or not
-
merge more steps and jobs
-
remove old tiles is in tile 3 and in tile 1
-
recategorize many to labor in order to hire somebody for a day.
-
With anything job, really need to be able to enter a task description for task instances.
-
Should be able to see the list of applied jobs on the front door items view.
-
3 liters is the most mortar I can lay before it dries.
-
Seems like I can put down about 1 to 1.5 liters of grout before it dries.
-
chronological log works, but should identify gaps and overlaps.
-
Should be able to clock in on chronological log, but would also need to show Front Door, so maybe not.
-
Need to be able to store a note like the notes at the top of tilecalc. Those are critical.
-
backer board = 13mm. tile + mortar = 11mm
-
Implement tags where appropriate, like item type tags to show only jobs that are applicable to the item. Each job could be applicable to multiple items.
-
reduce the chronological log to previous x days, 2 weeks, something manageable.
-
be able to clock in on chronological log.
-
reduce clocked in and clocked out to a single time when they match, maybe a single start time.
-
change the long varchar fields to text.
- Person time logged view, honestly just for me logging my time with it.
- changes saved confirmations, maybe less actually now.
- estimate view needs to show average hours per job.
- tlom-renovation online with jobs list with prices
- Estimate view needs to list materials and give the option to charge material to customer.
- Make an add task button at top of each job under estimate view?
- Best way to include all US properties and maintain property integrity over time and change of ownership.
- record tile job sizes
- make the work view by phase - or maybe just allow sorting by phase
- Make invoice number useful.
- Tile row 0 so even/odd holds for negative rows
- Label the ID numbers that are placed on rows
- hours by day
- client view that just shows tasks status and progress bar.
-
needs to be an estimate view under TasksLog
-
MomentIn should default to NULL, not timenow
-
Somehow show only one of MomentIn / MomentOut to the user as the moment the task was switched. Need to connect moment end of one event to moment beginning of next
-
Also need to identify overlap in times logged
-
todo order by phase (and implement phase since it's not currently implemented.)
-
todo group by date range
-
todo group by chargeable or not
-
todo group by status
-
todo group by trade?
-
implement DST? Done already I think? What is the convention?
-
need to be able to add up estimated time for jobs cost estimate - should be included in the TasksLog
-
need a scheduled category for hours to show hours scheduled
-
shopping list needs to work
This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.
Currently, two official plugins are available:
- @vitejs/plugin-react uses Babel for Fast Refresh
- @vitejs/plugin-react-swc uses SWC for Fast Refresh
If you are developing a production application, we recommend updating the configuration to enable type-aware lint rules:
export default tseslint.config({
extends: [
// Remove ...tseslint.configs.recommended and replace with this
...tseslint.configs.recommendedTypeChecked,
// Alternatively, use this for stricter rules
...tseslint.configs.strictTypeChecked,
// Optionally, add this for stylistic rules
...tseslint.configs.stylisticTypeChecked,
],
languageOptions: {
// other options...
parserOptions: {
project: ['./tsconfig.node.json', './tsconfig.app.json'],
tsconfigRootDir: import.meta.dirname,
},
},
})You can also install eslint-plugin-react-x and eslint-plugin-react-dom for React-specific lint rules:
// eslint.config.js
import reactX from 'eslint-plugin-react-x'
import reactDom from 'eslint-plugin-react-dom'
export default tseslint.config({
plugins: {
// Add the react-x and react-dom plugins
'react-x': reactX,
'react-dom': reactDom,
},
rules: {
// other rules...
// Enable its recommended typescript rules
...reactX.configs['recommended-typescript'].rules,
...reactDom.configs.recommended.rules,
},
})- Schema snapshot:
db/schema.sql— commit aCREATE TABLEexport here so contributors and automation can quickly see fields, keys, and enum-like columns. - Recommended generation command:
mysqldump -u <user> -p --no-data tlom > schema.sqlServer-side OCR runs via PaddleOCR in a Python virtualenv. This is intentionally isolated from the rest of the app so OCR dependencies don't affect anything else.
Why the extra constraints file?
- PaddleOCR's dependency metadata is currently too loose and allows NumPy 2.x.
- PaddleOCR/OpenCV wheels are compiled against NumPy 1.x and break with NumPy 2.x (ABI mismatch).
- Using a constraints file pins NumPy/OpenCV to compatible versions while still allowing a one-command install.
Setup (from repo root):
cd api
python3 -m venv .python_venv
source .python_venv/bin/activate
pip install -r requirements-ocr.txt -c constraints-ocr.txtEnv vars (in api/.env):
OCR_PYTHON_PATH=/home/nate/code/tlom2/api/.python_venv/bin/python
Verify OCR works:
/home/nate/code/tlom2/api/.python_venv/bin/python /home/nate/code/tlom2/api/ocr/paddle_ocr.py /home/nate/code/tlom2/api/uploads/ocrtestimage.jpgIf OCR fails with a NumPy ABI error, it usually means NumPy 2.x was installed. Re-run the install command above so constraints are applied.