1<!doctype html> 2<html lang="en"><head><meta http-equiv="X-UA-Compatible" content="IE=edge"> 3 <meta charset="UTF-8"> 4 <meta name="viewport" content="width=device-width, initial-scale=1"> 5 <meta name="description" content="Working Codeff demos for data visualization, PDF processing, APIs, automation, and connected devices."> 6 <meta name="robots" content="index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1"> 7 <meta property="og:title" content="Codeff Software Demos"> 8 <meta property="og:description" content="Working examples for data visualization, document processing, APIs, automation, and connected devices."> 9 <meta property="og:url" content="https://codeff.nl/apps/"> 10 <meta property="og:image" content="https://codeff.nl/static/images/Og-Project.png"><title>Software Demos | Codeff</title><link rel="icon" type="image/x-icon" href="/apps/assets/favicon.ico?m=1759740388.6003659"><link rel="stylesheet" href="/static/assets/css/codeff-shared.css"> 11<link rel="stylesheet" href="/static/assets/css/solutions.css"> 12<link rel="stylesheet" href="/apps/assets/main.css?m=1759740388.6003659"> 13<link rel="canonical" href="https://codeff.nl/apps/"> 14<meta property="og:type" content="website"><meta property="og:site_name" content="Codeff"> 15<meta name="twitter:card" content="summary_large_image"><meta name="twitter:title" content="Codeff Software Demos"> 16<meta name="twitter:description" content="Open working examples for data visualization, document processing, APIs, automation, and connected devices."> 17<meta name="twitter:image" content="https://codeff.nl/static/images/Og-Project.png">
18<script type="application/ld+json">{"@context": "https://schema.org", "@type": "CollectionPage", "@id": "https://codeff.nl/apps/#page", "url": "https://codeff.nl/apps/", "name": "Working Software Demos | Codeff", "description": "Working Codeff demos for data visualization, PDF processing, APIs, automation, and connected devices.", "isPartOf": {"@id": "https://codeff.nl/#website"}, "about": {"@id": "https://codeff.nl/#organization"}, "mainEntity": {"@type": "ItemList", "numberOfItems": 7, "itemListElement": [{"@type": "ListItem", "position": 1, "name": "CSV Visualizer", "description": "Upload tabular data and build an interactive visualization.", "url": "https://codeff.nl/apps/csv/"}, {"@type": "ListItem", "position": 2, "name": "PDF Image Extractor", "description": "Extract embedded images from PDF files in the browser.", "url": "https://codeff.nl/apps/pdf_img_extractor/"}, {"@type": "ListItem", "position": 3, "name": "Weather Explorer", "description": "Explore hourly temperature forecasts for any location.", "url": "https://codeff.nl/apps/weather/"}, {"@type": "ListItem", "position": 4, "name": "Invoice Generator", "description": "Generate consistent invoices from structured inputs.", "url": "https://invoicegen.codeff.nl/"}, {"@type": "ListItem", "position": 5, "name": "Smart CSV", "description": "Prepare and work with CSV data through a focused interface.", "url": "https://csv.codeff.nl/"}, {"@type": "ListItem", "position": 6, "name": "PII REST API", "description": "A backend service demonstrating structured API workflows.", "url": "https://pii.codeff.nl/"}, {"@type": "ListItem", "position": 7, "name": "IoT Dashboard", "description": "A Streamlit application for monitoring connected-device readings and trends in real time.", "url": "https://iot.codeff.nl/"}]}}</script>
18</head> 19<body> 20<div id="react-entry-point"> 21 <div class="_dash-loading"> 22 Loading... 23 </div> 24</div> 25<footer>
25<script id="_dash-config" type="application/json">{"url_base_pathname":"\u002fapps\u002f","requests_pathname_prefix":"\u002fapps\u002f","ui":false,"props_check":false,"show_undo_redo":false,"suppress_callback_exceptions":false,"update_title":"Updating...","children_props":{"dash_core_components":{"Checklist":["options[].label"],"Clipboard":[],"ConfirmDialog":[],"ConfirmDialogProvider":[],"DatePickerRange":[],"DatePickerSingle":[],"Download":[],"Dropdown":["options[].label"],"Geolocation":[],"Graph":[],"Input":[],"Interval":[],"Link":[],"Loading":[],"Location":[],"LogoutButton":[],"Markdown":[],"RadioItems":["options[].label"],"RangeSlider":[],"Slider":[],"Store":[],"Tab":[],"Tabs":[],"Textarea":[],"Tooltip":[],"Upload":[]},"dash_html_components":{"A":[],"Abbr":[],"Acronym":[],"Address":[],"Area":[],"Article":[],"Aside":[],"Audio":[],"B":[],"Base":[],"Basefont":[],"Bdi":[],"Bdo":[],"Big":[],"Blink":[],"Blockquote":[],"Br":[],"Button":[],"Canvas":[],"Caption":[],"Center":[],"Cite":[],"Code":[],"Col":[],"Colgroup":[],"Content":[],"Data":[],"Datalist":[],"Dd":[],"Del":[],"Details":[],"Dfn":[],"Dialog":[],"Div":[],"Dl":[],"Dt":[],"Em":[],"Embed":[],"Fieldset":[],"Figcaption":[],"Figure":[],"Font":[],"Footer":[],"Form":[],"Frame":[],"Frameset":[],"H1":[],"H2":[],"H3":[],"H4":[],"H5":[],"H6":[],"Header":[],"Hgroup":[],"Hr":[],"I":[],"Iframe":[],"Img":[],"Ins":[],"Kbd":[],"Keygen":[],"Label":[],"Legend":[],"Li":[],"Link":[],"Main":[],"MapEl":[],"Mark":[],"Marquee":[],"Meta":[],"Meter":[],"Nav":[],"Nobr":[],"Noscript":[],"ObjectEl":[],"Ol":[],"Optgroup":[],"Option":[],"Output":[],"P":[],"Param":[],"Picture":[],"Plaintext":[],"Pre":[],"Progress":[],"Q":[],"Rb":[],"Rp":[],"Rt":[],"Rtc":[],"Ruby":[],"S":[],"Samp":[],"Script":[],"Section":[],"Select":[],"Shadow":[],"Slot":[],"Small":[],"Source":[],"Spacer":[],"Span":[],"Strike":[],"Strong":[],"Sub":[],"Summary":[],"Sup":[],"Table":[],"Tbody":[],"Td":[],"Template":[],"Textarea":[],"Tfoot":[],"Th":[],"Thead":[],"Time":[],"Title":[],"Tr":[],"Track":[],"U":[],"Ul":[],"Var":[],"Video":[],"Wbr":[],"Xmp":[]},"dash_table":{"DataTable":[]},"dash_iconify":{"DashIconify":null},"dash_extensions":{"BeforeAfter":[],"CycleBreaker":[],"DeferScript":[],"EventListener":[],"EventSource":[],"Keyboard":[],"Lottie":[],"Mermaid":[],"Purify":[],"WebSocket":[]},"dash_mantine_components":{"Accordion":["chevron"],"AccordionControl":["chevron","icon"],"AccordionItem":[],"AccordionMultiple":["chevron"],"AccordionPanel":[],"AppShell":["navbar","aside","header","footer"],"Aside":[],"Footer":[],"Header":[],"Navbar":[],"Avatar":[],"AvatarGroup":[],"Button":["leftIcon","rightIcon"],"ButtonGroup":[],"Card":[],"CardSection":[],"Checkbox":["label"],"CheckboxGroup":["label","description","error"],"Chip":[],"ChipGroup":[],"HoverCard":[],"HoverCardDropdown":[],"HoverCardTarget":[],"BackgroundImage":[],"Image":["placeholder","caption"],"List":["icon"],"ListItem":["icon"],"Menu":[],"MenuDivider":[],"MenuDropdown":[],"MenuItem":["icon","rightSection"],"MenuLabel":[],"MenuTarget":[],"Radio":["label"],"RadioGroup":["label","description","error"],"MultiSelect":["nothingFound","label","description","error","icon","rightSection"],"Select":["nothingFound","label","description","error","icon","rightSection"],"RangeSlider":["marks[].label","thumbChildren"],"Slider":["marks[].label","thumbChildren"],"Stepper":["completedIcon","progressIcon"],"StepperCompleted":[],"StepperStep":["icon","completedIcon","progressIcon","label","description"],"Tab":["rightSection","icon"],"Tabs":[],"TabsList":[],"TabsPanel":[],"JsonInput":["validationError","icon","rightSection","label","description","error"],"NumberInput":["icon","rightSection","label","description","error"],"PasswordInput":["icon","rightSection","label","description","error"],"TextInput":["icon","rightSection","label","description","error"],"Textarea":["icon","rightSection","label","description","error"],"Timeline":[],"TimelineItem":["title","bullet"],"FloatingTooltip":["label"],"Tooltip":["label"],"ActionIcon":[],"Affix":[],"Alert":["title","icon"],"Anchor":[],"Badge":["leftSection","rightSection"],"Blockquote":["icon","cite"],"Breadcrumbs":["separator"],"Burger":[],"Center":[],"Code":[],"Col":[],"ColorPicker":[],"Container":[],"Divider":["label"],"Drawer":["title"],"Grid":[],"Group":[],"Highlight":[],"Indicator":["label"],"Kbd":[],"Loader":[],"LoadingOverlay":["loader"],"MantineProvider":[],"Mark":[],"MediaQuery":[],"Modal":["title"],"
25NavLink":["label","description","icon","rightSection"],"Pagination":[],"Paper":[],"Prism":[],"Progress":["sections[].tooltip"],"RingProgress":["label","sections[].tooltip"],"ScrollArea":[],"SegmentedControl":[],"SimpleGrid":[],"Skeleton":[],"Space":[],"Spoiler":[],"Stack":[],"Switch":["label","offLabel","onLabel","thumbIcon"],"Table":[],"Text":[],"ThemeIcon":[],"Title":[],"TransferList":[],"DatePicker":["icon","rightSection","label","description","error"],"DateRangePicker":["icon","rightSection","label","description","error"],"TimeInput":["icon","rightSection","label","description","error"],"DemoSegmentedControl":[],"DemoSlider":[],"Notification":["icon","title","message"],"NotificationsProvider":[]}},"serve_locally":true}</script>
25<script src="/apps/_dash-component-suites/dash/deps/[email protected]_15_0m1787431937.12.1.min.js"></script>
vendor: 1 bytes, line 25
25
26<script src="/apps/_dash-component-suites/dash/deps/[email protected]_15_0m1787431937.14.0.min.js"></script>
vendor: 1 bytes, line 26
26
27<script src="/apps/_dash-component-suites/dash/deps/[email protected]_15_0m1787431937.14.0.min.js"></script>
vendor: 1 bytes, line 27
27
28<script src="/apps/_dash-component-suites/dash/deps/[email protected]_15_0m1787431937.8.1.min.js"></script>
vendor: 1 bytes, line 28
28
29<script src="/apps/_dash-component-suites/dash_iconify/dash_iconify.v0_1_2m1787431912.min.js"></script>
vendor: 1 bytes, line 29
29
30<script src="/apps/_dash-component-suites/dash_extensions/dash_extensions.v1_0_12m1787431937.min.js"></script>
vendor: 1 bytes, line 30
30
31<script src="/apps/_dash-component-suites/dash_mantine_components/dash_mantine_components.v0_12_1m1787431912.js"></script>
vendor: 1 bytes, line 31
31
32<script src="/apps/_dash-component-suites/dash/dash-renderer/build/dash_renderer.v2_15_0m1787431937.min.js"></script>
vendor: 1 bytes, line 32
32
33<script src="/apps/_dash-component-suites/dash/dcc/dash_core_components.v2_13_0m1787431937.js"></script>
vendor: 1 bytes, line 33
33
34<script src="/apps/_dash-component-suites/dash/dcc/dash_core_components-shared.v2_13_0m1787431937.js"></script>
vendor: 1 bytes, line 34
34
35<script src="/apps/_dash-component-suites/dash/html/dash_html_components.v2_0_16m1787431937.min.js"></script>
vendor: 1 bytes, line 35
35
36<script src="/apps/_dash-component-suites/dash/dash_table/bundle.v5_2_9m1787431937.js"></script>
36<script id="_dash-renderer" type="application/javascript">var renderer = new DashRenderer();</script>
36</footer></body></html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.