- add hot-annoucement banner component
- ensure image cleanup runs in background job, not foreground wait
- frontend: align style of "Upload to OAM" button with others in project page
- frontend: improve map legend colours + ordering for user clarity
- qfield: improve the qfield project loading experience via staging page
- backend: add a couple of extra flags default for ODM processing
- backend: do not use opensfm v1 until dense reconstruction crashes fixed
- backend: tweaks to ODM flags used to better handle very large datasets
- drone-mesh: fix loading a single high res glb, with client-side downsampling
- remove em dashes from cloud-mesh code
- frontend: update UI for better consistency across tools - adhere to hotosm/ui-design (#860)
- add vendored drone-mesh project as new 3D viewer (#859)
- significantly improve the resiliency of the s3 image transfer logic
- integrate the drone-mesh project via the drone-tm ui
- frontend: add small task uuid copy button for easier processing debugging
- backend: fix up typing issues picked up by ruff, instead of ignoring
- frontend: move additional flight param settings behind an Advanced Options toggle
- move drone-mesh into the correct dir... oops! run pre-commit
- backend: add stationary photo identification when photo cature is left on
- backend: improve scaleodm processing reconciliation (1) webhook (2) refresh btn (3) bg cron (#854)
- add GPX download for takeoff point in waypoint popup (#851)
- backend: align db models with current db state, migrate for extra scaleodm fields
- frontend: remaining issues with new project creation layout
- frontend: re-order the project creation to be more user friendly / logical (#849)
- frontend: additional translation placeholders + translations
- align prod/dev uvicorn, ensure log level switch works well
- backend: upsert on user creation to avoid 500 error
- backend: remove overly verbose logging from sentry api calls
- processing status reconciliation logic for ScaleODM jobs
- backend: ensure task are correctly picked up when entire project processing triggered
- backend: remove the shadow identification imagery verifiy step, too flakey / not needed
- frontend: improve performance of Verify Imagery dialog
- frontend: viewing the fast task orthos in modal, sequential verify image selection
- frontend: sometimes can't re-run processing on a finished task
- remove the Processing Queue dialog, moved to ScaleODM instead
- frontend: additional funcs for verify imagery dialog: multi-reject, shift click
- frontend: allow viewing of task fast ortho in its original projection
- backend: additional fixes for task reconciliation logic
- frontend: remove fast ortho task viewer until replaced with OL
- backend: simplify processing reconcile to update db + delete scaleodm, before long job
- backend: processing reconilisation using s3 ortho path instead of api
- qfield: final fixes for qfield plugin, file picked / dji mission selector
- frontend: fix layout of projects page, allow search bar to flex
- qfield: update labelling set for dtm-tasks layer
- qfield: update plugin to enter dji mission id, and save as pre-named file
- remove redundant 'canvasAction' button on qfield plugin
- backend: ensure the s3 uploaded qfield project does not have caching
- qfield: styling on generated flightplans, allow download / controller copy
- frontend: improve the 3d viewer rendering and simplify the logic
- restructure qfield plugin for clarity, fix the flightplan copy button
- implement a 2D Ortho & 3D mesh viewer (#811)
- qfield: add qfield .qml style for dtm-tasks layer
- frontend: avoid deleting all uploads on accidental uppy unmount
- show Mark Fully Flown button in more scenarios, fix dup task details state
- fix the ui to allow for better task lock/unlock status changes
- frontend: better clarify status of DEM to avoid user confusion
- backend: wayline mode was broken after recent logic merge, fixes #818
- frontend: missing translation key for tutorials page preventing render
- frontend: remove showing the task orthophoto until converted to mercator
- frontend: closing the waypoint popup on task map
- geojson flightplan download, add DEM download option, upload dem option
- backend: fix download=false waypoint generation to use DEM, make code DRY
- frontend: add bahasa indonesia to translations
- backend: improve the task asset probe to be bulk / efficient for large task num
- frontend: add additional annotated string placeholders + en/es translations
- consolidate scripts dirs for backend helpers
- backend: add image rejection based on sun position < 10 deg - bad lighting
- frontend: add additional image rejection criteria for images with significant shadow
- frontend: use radix switch for Verify Imagery modal flight tail toggle
- add a toggle to 'Disable Flight Tail Detection' in imagery classification modal
- tweak comment styles
- frontend: add box select / select multiple option for image override / task matching
- display more useful info on project details page
- frontend: hardcoded /api/ in odm assets HEAD url checker
- frontend: remove Download ODM Assets button from main details page
- add script by @zestyping for local odm process + stats (timed)
- backend: ensure dem download path is correct to expose for frontend download
- move odm asset download to export section, fix download logic
- frontend: ensure the user is updated immediately with processing status on refresh
- frontend: ensure we set content type on axios call with capacityType
- backend: ensure we don't include the dem.tif in the final project processing!!
- backend: stream-zip of final odm assets for the project
- add option to override spot processing --> on-demand for VIP workflow
- frontend: missed style on image review dialog for Accept button
- backend: reconcile stray user-uploads images that may have been missed
- qfield: cleanup file save flightplan logic, ensure gsd + overlap params passed through
- ensure s3 images are deleted when rejected + add scan button for stray user-uploads
- backend: ensure all the images are correctly picked up for project level processing
- backend: tighten up the scaleodm task status reconcile process
- backend: more decisive update of project level processing status
- frontend: also detect when project level processing is done
- qfield: improvements to saving files from qfield plugin flightplan gen
- backend: update ScaleODM reconcile logic to also include fallback S3 asset check
- do not reproject the final project ortho as web mercator & don't display on map
- add potensic atom 2 output handling to qfield plugin
- frontend: ensure we include cookie with requests to download task areas
- add a script for marking a project as complete, and updating ortho url
- backend: scaleodm processing reconciliation logic, replace webhook with pull scan
- ensure all assets can be downloaded from final project processing
- backend: ensure processing job reconciliation against ScaleODM works well
- scripts: add a script to make a CSV catalog of EXIF/XMP fields from drone photos in S3 or in a folder (#803)
- backend: ensure we also use default excludes for project processing
- backend: ensure the processing params specified are respected for ScaleODM
- worker: decrease healthcheck interval + tune for better k8s response
- implement ScaleODM remote scalable processing (#806)
- drone-flightplan: correctly pass through user configured gimbal angle, fixes #784
- frontend: improve landing page, add case studies section, fixes #631
- automated project creation option using image upload and EXIF scan to determine AOI (#802)
- frontend: disable auth requirement for main projects + details pages, fix #610
- backend: pull in images on the periphery of tasks (aoi edge), fix #764
- ensure whole project processing can proceed, despite individual task states
- allow downloading only the ortho, or all.zip assets, fixes #797
- backend: ensure project processing cannot be triggered multiple times, fixes #796
- backend: fix #798 to correctly show users tasks in dashboard
- override AUTH_PROVIDER for test setup for simplest config
- backend: migrations bodged after many cherry-picks / merges, fixed
- frontend: ensure protectedroute has login, else clear login state
- backend: replace global blur detection with grid-based sharpness and HSV terrain classification (#792)
- backend: improve the image coverage calcs to be more accurate
- fix #794, final project processing logic for enable / disable
- frontend: do not poll for processing dialog, instead use manual refresh button
- small refactors, fix to task image count, and removal of deprecated code
- backend: better determination of photo coverage complete per task, fix #782
- backend: reconcile current migrations with hanko migration
- frontend: fix #779 where user tagging dialog was cut off within modal
- backend: reset all classification tasks (instead of time interval)
- frontend: add confirmation dialogs when re-running processing (avoid accidental)
- backend: re-use the same db connection when processing imagery job
- backend: increase db pool size and timeout 30s --> 60s
- backend: migration revert reference accidentally hanko
- large update to processing workflow = prod ready, resilient
- backend: fixes to task splitting recorded in sentry, related to #759
- backend: sanitise logs to prevent accidential creds being present
- frontend: small fix to classification dialog polling error
- backend: ensure the default frontend origin is included in CORS, add comments to vars
- backend: reset all classification tasks (instead of time interval)
- frontend: add confirmation dialogs when re-running processing (avoid accidental)
- backend: re-use the same db connection when processing imagery job
- backend: increase db pool size and timeout 30s --> 60s
- backend: migration revert reference accidentally hanko
- large update to processing workflow = prod ready, resilient
- backend: fixes to task splitting recorded in sentry, related to #759
- backend: sanitise logs to prevent accidential creds being present
- frontend: small fix to classification dialog polling error
- backend: add script for migrating old assets.zip & images.json files
- add Hanko SSO Authentication - HOT Login (#756)
- frontend: bug where classification could not be triggered
- various fixes, move the trask image transfer to backend worker (arq)
- frontend
- improve usage of pre-signed urls that was unsustainable at large scale
- correctly move imagery from user-uploads, not just copy. ensure cleanup is possible
- backend: remove legacy user-uploads/thumbs logic for s3
- backend: prevent loading ./odm dir when re-processing imagery - causes issues
- backend: ensure project deletion cascades and includes as s3 assets too
- backend: the ortho conversion to COG doesn't work as expected
- frontend: do not generate flightplans once the task is completed (processed)
- frontend: avoid issues when the task ortho is invalid for map zoom
- run pre-commit hooks (oxfmt + uv) on all files in repo
- separate out image classify step, resilient to restarts, per project not per batch (#780)
- backend: remove assets.zip and ortho on successful migration script
- backend: remove legacy references: images.json & assets.zip
- backend: add script for migrating old assets.zip & images.json files
- backend: remove legacy user-uploads/thumbs logic for s3
- backend: prevent loading ./odm dir when re-processing imagery - causes issues
- backend: ensure project deletion cascades and includes as s3 assets too
- backend: remove assets.zip and ortho on successful migration script
- backend: remove legacy references: images.json & assets.zip
- backend: the ortho conversion to COG doesn't work as expected
- frontend: do not generate flightplans once the task is completed (processed)
- frontend: avoid issues when the task ortho is invalid for map zoom
- drone-flightplan: fix #751 overlap in N-S and E-W not being equal, add comment
- drone-flightplan: better logic to ensure we correctly buffer the aoi for flightplan (all axes)
- drone-flightplan: fix #712 after analysis by @zestyping, missing minus sign
- frontend: fix #748, add google maps deep link + clipboard copy for takeoff coord
- frontend: fix #770 landing page layout
- backend: enable download of all ODM assets by anyone, until better roles impl
- backend: avoid false positive task restarts for reconciliation workflow
- backend: missed variable task_count --> total_task_count to enable final processing
- backend: move odm asset processing to arq worker to avoid livenessProbe timeouts
- out of memory error during ODM assets.zip extraction, robust stream-zip implementation (#768)
- backend: add lru_cache to s3 client init (prevent multiple inits)
- frontend: wrapping flight gap identification in UI (#738)
- backend: s3 urls don't need path bucket prefix when using cloudfront
- fix processing issues with webhook, ODM job queue, CTRL+click for custom ODM
- only display odm task queue for pending, queued, failed
- frontend: display the project/task uuid on the detail pages
- fix #426 fix #190, user friendly urls instead of UUIDs (internal only)
- frontend: properly fix ##606 for multipolygon aoi merging
- backend: PostGIS functions for geom merge project creation
- frontend: add app version number to top left, better indicate when updated
- frontend: fix #277 for better use creation flow
- #735: integrate geojson-aoi-parser for robust AOI parsing (#752)
- drone-flightplan: cleanup some missing print statements
- add option to mark task as 'fully flown' on task detail page
- backend: ensure UNLOCKED tasks transition to HAS_IMAGERY on image upload
- frontend: remove 'Something went wrong' fallback, replace with spinner
- frontend: don't hide the project page redirect on mark fully flown
- frontend: fix #530 when drawing geoms during project creation
- backend: properly fix log propagation for psycopg_pool
- frontend: tweaks to ui / comments for task popup
- frontend: tweaks to the ui for statuses project map
- redesign the events and task states throughout the app +
FULLY_FLOWNstate (#757)
- qfield: commit working implementation of qfield plugin flightplan gen
- backend: url pre-sign issue against cloudfront during processing in prod
- frontend: allow adding comments to locked tasks, partial #750
- frontend: only register hot cookie banner (matomo) in production
- backend: suppress verbose db pool connection logging on prod
- qfield: tweak plugin to auto-pan to flightplan after gen + scroll down on dialog
- qfield: ensure the js flightplan output matches the python one exactly
- frontend: ensure adb flightplan copy implementation for dji works in correct dir
- frontend: tutorial videos loading, no longer require pre-signing
- gcp-editor: move gcp-editor to monorepo here, ol --> maplibre, fix up workflow with current code
- frontend: improve visual consistency of design / radio buttons
- frontend: surface the manual rejection override button for the user
- frontend: minor fixes after gcp editor integration
- gcp-editor: remove @tailwind base to avoid preflight reset on main app
- frontend: fix broken pnpm lock file after merge
- frontend: small styling override from gcp-editor
- frontend: update hotosm/ui to avoid module register error
- frontend: lazy load frontend components, use webp over png, optimise first page load (#744)
- frontend: replace huge mobile .svg --> tiny .webp file
- frontend: compress png --> webp for landing images, update refs, remove unused
- frontend: lazy load components, preload css / imgs, font swap css - improve FCP
- Switch from minio to boto3
- backend: flight gaps and creating a reconstructed flightplan based on missing imagery (#723)
- support Potensic Atom 2 Waypoint Missions (JSON Format) (#726)
- add helm chart for k8s migration (#591)
- backend: add opentelemetry instrumentation for arq worker
- backend: removing flight tails from uploaded imagery (#698)
- backend: photo upload upgrade fixes, plus additional classification and validation criteria for image uploads (#697)
- triggering processing workflow after new photo upload method (#691)
- classification workflow for imagery upload (#668)
- backend: add Sentry OTEL traces to prod (#675)
- improvements to imagery upload step using s3 multipart, per project file dump (#678)
- frontend: add a tooltip recommending the usage of waylines when a high number of waypoints are present (#670)
- backend: Public endpoints for accessing list of centroids and single project (#663) (#672)
- frontend: add sorting to contributions table and pretty task ID to map (#660)
- drone-flightplan: add support for Litchi CSV export + QGroundControl
.planJSON export (#646) - qfield: start work on qfield flightplan generation plugin
- finalise photo uploader workflow (separate dialogs, review map, edge cases & resiliency) (#733)
- frontend: ui adjustments to photo upload flow (#727)
- backend: ensure OtelSettings ingerit LOG_LEVEL from primary settings
- backend: pydantic Config deprecation
- frontend: if no DEM is present when it should be, warn user
- backend: upgrade scrapy, use Async crawler to avoid issues on subsequent download
- frontend: start to reword mapping --> flying #494
- frontend: display the task index on task click, not the uuid
- backend: correctly remove psycopg_pool verbose logs
- backend: hide verbose logs, move tif spider to arq worker job
- backend: ensure tif spider code is self-contained and uses /tmp, bump chart --> 0.1.5
- frontend: build issue after logic update
- backend: merge together classification & flight tail removal logic, fix up
- backend: decrease max concurrent file uploads to s3 --> 2
- backend: various image classification logic fixes, typing, ordering, race conditions
- backend: avoid error if s3 url pre-signing fails on project get
- backend: pre-commit issues / import errors
- backend: ensure existing tests all pass (#689)
- frontend: revert to maplibre demotiles for basemap
- frontend: add osm raster tile fallback on vector tile failure
- backend: OTEL follow up part 2 (#681)
- hotfix: missed import from removed FlightPlan enum
- backend: conflicting FlightPlan enum, remove DroneTM version (#679)
- drone-flightplan: suggest task split to user if flight time exceeds 80% of battery life (#664)
- frontend: remove unused prop and modify interfaces to fix build errors (#674)
- backend: implement cleanup of successful / failed NodeODM tasks (#658)
- frontend: task and individual project page console errors (#666)
- frontend: redirect to pages behind the login (#659)
- correct forgot password functionality (#661)
- frontend: use an anchor tag for correct semantics (#655)
- frontend: remove horizontal padding from app container
- mapper: mobile optimised layout, fixes #652
- use ExpressionEvaluator for DEM sampling
- backend: multipolygon parsing during project creation, fixes #606
- backend: Local Development Setup (#630)
- drone-flightplan: cleanup setting gimbal angle for oblique and nadir shots
- drone-flightplan: for now do not adjust gimbal roll, just straight forward pitch
- remove redundant JAXA_AUTH_TOKEN
- tweaks to urls remaining as dronetm.hotosm.org
- various fixes, refactors, doc updates, mostly affecting s3 local dev usage
- remove dtm-data prefix from s3, replace all hardcoded to accelerate endpoint
- consolidate env vars to simplify deploy, update chart + compose to match
- rename Uploaded --> Pending for image classification process
- cleanup confusing unused code, swap frontend map legend order
- typo stepSwticherData --> stepSwitcherData
- replace all refs to 'develop' branch --> 'dev'
- update test qgis plugin - making more progress!
- backend: fix typo in total_image_count var
- frontend: add temp component to adjust gimbal angle for flightplans
- backend: add gimbal rotation option for flightplan generation
- add support for dji mini 5 pro, fixes #598
- Update mobile app apk download link
- add support to push flightplans directly to device via WebUSB ADB (#570)
- add toggle to select drone type for flightplan generation & fix drone param calcs (#559)
- add easy install webodm script
- drone-flightplan: support for Potensic Atom 2 waypoint missions (#545)
- enable go to task for everyone even it is locked
- merge issue
- drone-flightplan: ensure that flights complete (don't return) on controller transmission loss
- frontend: missed passing gimbalAngle when updating takeOffPoint
- frontend: no initial value for gimbalAngle = no flightplan
- frontend: line between two menu items
- backend: put the task id first in the flightplan kmz file download
- frontend: add numerical task index to flightplan filename, fixes #319
- frontend: incorrect terrain follow param on project description
- backend: fixes #552 add project task download with useful info
- typo for key for terrain following
- remove required for fields in basic detail form
- drone-flightplan: enable shootType=time for timed interval waylines
- drone-flightplan: attempt auto-start photo intervals on wayline mode
- drone-flightplan: update terrain following code to remove extra buffer points
- drone-flightplan: attempt another fix of straight line flightplans, no curve
- drone-flightplan: remove double end points for wayline missions (optimise curved --> straight)
- drone-flightplan: correctly set the flightplan to not curve (per point, as globally doesn't work)
- drone-flightplan: test creating straight line flight curvature
- drone-flightplan: ensure flight continue on signal loss
- update tutorial links, add rc file transfer by app tutorial
- frontend: update recommended side overlap, based on #509
- update CNAME for docs site
- backend: update add_elevation_from_dem.py to swap dem coords (GDAL change) (#590)
- drone-flightplan: potensic flights named per chunk
- backend: split flights into 10 point chunks, for easier resume
- drone-flightplan: set potensic atom 2 ground speed to 8 m/s max
- frontend: minor typing error
- drone-flightplan: enable globalUseStraightLine=1 by default, fixes #524
- frontend: set default flightplan mode to waylines, fixes #547
- backend: minor fixes after merge
- backend: standardise usage of drone_flightplan global module exports
- cleanup dji xml exitOnRcLost actions
- frontend: make download selection options clearer to user
- run spellchecker on entire codebase
- add domain for docs page
- fix typos in toast notifications
- frontend: minor dependency cleanup and unused components using knip
- frontend: fix minor ts linting errors
- frontend: run eslint linter --fix
- update drone-tm/pgupgrade --> hotosm/pgupgrade img
- render
NoDataComponentwith proper message insted ofNo data foundplain message - add
NoDataComponentcomponent to show on empty data list - add
All Projectsoption on filter projects by status - main-dashboard: implement filter on map
- main-dashboard: implement filter on map
- add and customize no-fly-zone
- create-project: show no fly zone on map
- add totalNoFlyZoneArea storing variable on redux slice
- useDrawTool-component: cursor style update on mode change
- fix error message typo
- save total project area on redux state
- project-creation: update UI of Define AOI step and enable project area edit on map
- project-creation: validate total project area
- project-creation: refactor code and UI of Define AOI step
- increase the task size to 1000m
- backend: invalid exports using all in drone-flightplan
- remove padding top on project dashboard map
- popup open on download or orthophoto visibility button click
- waypoints module import issues
- import from the droneflightplan package
- drone-flightplan: add all for top level imports from pkg
- backend: restructure encryption logic to prevent cyclical imports
- upload to OAM button hidden
- correct WKB to GeoJSON conversion in task processing
- backend: add extra logs to waypoint + dem generation, include traceback
- backend: add logs if JAXA DEM download scraping or upload fails
- add warning log if is_terrain_follow but DEM access fails
- backend: add is_terrain_follow to project response to easily verify
- show message received as response and refetch project description on upload to OAM success
- update string formating utils
- show upload to OAM only if the oam status is
NOT_STARTEDorFAILED - show
Upload to OAMbutton only to the author of the project - show progress on early (on url fetch)
- image-upload: show uploading image progressbar on description section disable upload button if upload is in progress assets info refetch on upload image status update
- image-upload: change style of points selected for delete
- project-description: toggle project area visibility
- add default tags
- project-description: show start processing if any of the task image upload is completed
- add button to upload to OAM on project description section
- create modal for uploading to OAM with tags
- add oam token update field
- clear visible orthophoto list on project description page unmount
- remove project details query on component unmount
- add project id on orthophoto source memo dependency
- add project id on project detail query key
- task-description: show start-processing button even if all selected images are not uploaded
- add talk to us section
- task-description: zoom to orthophoto
- upload-images: wrap upload section with error boundary
- upload-images: update text of showing the % of image lies inside the project
- upgrade
react-tostifto11.0.0to make compatible with react v19 - update lock file
- import and add
HotTrackercomponent on App.tsx - create
HotTrackercomponent - filter projects by status
- update tooltip message
- zoom to project area
- zoom to extent on project section
- zoom to task area on task area visible
- show task area and % of uploaded images from within the project area
- save task area on state
- add
@turf/boolean-point-in-polygon - add error boundry
- individual-project: skeleton loader description data fetching and clear state on component unmount
- skeleton loader on individual project description
- filter projects by status
- add matomo cookie acceptance banner on home page
- individual-project: update download assets button
- implement selection delete point images
- visible delete project button only for the project creator
- implement delete project feature
- create delete project confirmation prompt
- download final result
- task-description: use separate api for assets data insted of using task description data
- project-description: show processing button only if the any of the task has completed the processing
- show confirmation dialog on task unlock
- create
ProjectPromptDialog - create
UnlockTaskPromptDialog - add tutorial page
- create video card component
- add video player component
- add tutorial route and navigation link on navbar
- remove navbar of tutorials page
- add
@react-spring/webfor animation - add video list constants
- show task unlock button to project creator
- reload page on regulator exists the page
- show additional information on project description
- task-description: enable zoom to layer feature on task orthopoto
- update mobile apk download section design
- zoom to orthophoto of overall project
- show
no data availablemessage if there is no data - update dashboard card design
- landing-page: remove unnecessary image
- landing-page: add mobile app download section
- individual-project: visualize and toggle overall project orthophoto
- toggle tasks orthophoto visibility from table row
- individual-project: store visible list of orthophoto sources on redux state
- add key on breadcrumb items
- popup toast message on processing started
- render buttons as per project processing status
- update processing starter parameter on individual project
- add toas message on processing started
- update process imagery service
- add
ChooseProcessingParametermodal compoennt to choose processing parameter - prevent multiple event trigger on gcp editor component
- show upload progress on task description section
- save upload progress details on redux
- add upload progress state on task details slice
- add progress bar component
- hide start procesing button if
image_processing_statusidSUCCES - add project and task on download file
- export project info
- create mapsection for export section
- create export section page
- add
preserveDrawingBuffer: trueto preserving the drawing buffer - task-description: downlaod rotated plight plan .kmz file
- task-description: use rotation angle of redux state as a final rotation angle
- task-description: store rotation angle on redux store
- change state migration file
- copying file within s3 bucket
- circular import problem in oam.py
- update project oam status api
- docker-compose.vm.yml volumes arq-worker
- map section of mobile view
- project creator can upload images, state change fix
- format
- query params on project listing api
- update logon on sigin overlay
- show overall project orthophoto toggle icon
- indentation
- invalidate assest-info query after upload success
- typo
- crash issue because of distructure of map style
- removed files not other than odm accepted files in processing
- wrap query key with
[] - frontend: import hotosm/ui javascript files, add custom type declaration
- frontend: final fixes to typing, add custom react declaration extending types
- replace tanstack useQuery onSuccess
- tanstack incorrct useMutation
- turf AllGeoJSON comparison on .flatten()
- redux-persist typing errors
- add RootState prop for redux reducer
- replace tanstack query mutation isLoading prop --> isPending (rename)
- redux toolkit now correctly infers state types, remove IRootReducer
- tanstack query usage of invalidateQueries usage include {queryKey: xxx}
- frontend: replace JSX.Element with React.JSX.Element
- usage of CombinedState in reduxjs/toolkit (deprecated)
- re-enabled hot-tracking matomo component (react 19 required)
- duplicate code in webhook implementation
- random uuid is removed from image names
- comment
HotTracker - hot-tracking does not exist on type JSX.IntrinsicElements ts error
- task area/flight plan toggle
- task schemas created_at made optional
- redirect to login if the user includes a
REGULATORrole - regulators-page: clear localstorage while redirection through the url
- show start processing button
- remove white space
- change password issue
- add type guard on user-profile image
- image processing failed condtion
- cannot removed source the layer is using it
- url for assets and project orthophoto
- white space formating
- convert splash bg image from png --> compressed jpg
- add button text and close popup on button click props
Vector Layercomponent
- project-description: call assets api only on contirbution tab is on view
- individual-project: get assets list
- task-description: update assest information api endpoint
- added users authentication
- added new assets download endpoint
- added asgiref package to convert the async to sync function
- project-dashboard: update map and project card style
- project-dashboard: udpdate row per page options
- project-description: increase opacity of task completed tasks fill color
- project-details: image processing status text update
- reduce table height
- project-description: add different color code as per project status on properties of projects geojson
- fill circle color code from properties on VectorLayerWithCluster component
- project-dashboard: show complete status on project card
- add Status chip component
- dashboard: make logs table responsive
- refine the status of tasks
- update the status of each projects on projects list endpoint
- update task state to reflect the start of image processing
- updated the task as completed after process from s3
- project-details: show loader on table
- project-details: fill different color for completed task and image uploaded task
- project-details: show skeleton on project data fetching
- project-details: add new status on legend
- dashboard: show slug on project card
- dashboard: update UI and pass other project details on project card props
- projects: Show status on project card
- dashboard: show user role
- updated downlaod assets url
- user-profile: redirect to complete profile on google auth success
- user-profile: redirect to complete profile page if the user not completed the signup
- user-profile: show error message
- user-profile: update password
- user-profile: update other details
- user-profile: update organization details
- user-profile: call user details api on userProfile of nav section
- user-profile: create user profile patch service
- store user details on local storage on fetch success
- user-profile: update basic details
- remove the route
user-profileaddcomplete-profilefrom the list of routes without navbar - user-profile: add UpdateUserProfile component
- add common css class main-content that gives the full screen height after reducing the nav bar height
- update-profile: add OtherDetails component
- update-profile: add Password component
- update-profile: add OrganizationDetail component
- update-profile: add Header component
- update-profile: add BasicDetails component
- replace user-profile layout component and and add new route called complete-profile
- add Breadcrumb component
- update file and folder structure and rename
UserProfiletoComplete UserProfile - user-profile: pass watch on form props
- added search features in projects read endpoit
- task-description: show task locked date
- individual-project: post date with other data on task lock/unlock
- added change password based on old and new password
- added two new enums such as IMAGE_UPLOADED & IMAGE_PROCESSED
- added updated_at in task details endpoint
- added updated_at field when user request, lock, unlock task
- added updated at field in task events table
- task-description: update button text
Starting PointtoTake Off Point - add return type of
retryFc - added users list endpoints
- updated permission on delete projects, only project creator can delete the projects
- task-description-image-upload: implement
retryFcto retry the api in case of upload failure after 1 sec - task-description: retry image processing trigger api failure if the status code is 304 and the failure is less than 5 times
- task-description: trigger the image processing starter api on completion of image uploads
- project-creation: show recommended value on task split dimension
- landing: add jamaica flying lab logo as a offical training partner
- landing: add jamaica flying lab logo as a offical training partner
- project-dashboard: show
No projects availableif there is no projects - task-description: download task area on kml/geojson format
- added KML download format in download boundaries API
- task-description: show only the download result button if orthophoto is available
- dashboard: make responsive
- dashboard: show project name on task logs and request logs
- project-dashboard: add dropdown for owner projects filter
- project-dashboard: apply projects filter by owner
- added project name list tasks based on user endpoint
- user-profile: make responsive
- task-description: implement each-task orthophoto download
- task-description: re-fetch uploaded information and close file upload modal on file all files uploaded successfully
- user-profile: make responsive
- update-profile: update placeholder text
- implement scroll to top on all pages
- make navbar fixed height
- add
ScrollToTopcomponent - task-description: all the variables related to take-off point updation reset to initial state on component unmount
- project-description: show unlock button only if the task is locked by the same user
- project-dashboard: border radius on map
- project-description: make responsive
- tooltip for base layer switcher
- project-description: implement task unlock feature
- add secondary button on
AsyncPopupcomponent - task-description: close modal only instend of redirecting to dashboard
- task-description: mobile responsive file upload section
- task-description: update flight take off point point
- task-description: find bbox with updated take-off point and fit bounds to the bbox
- task-description: add waypoint endpoint
- task-description: plot new takeoff point geojson on map
- task-description: get coodrinates of current user location or by clicking on map and save as a geojson on state
- add ShowInfo component to show information on map
- add component to get coordinates on mouse click
- add turf/helpers package
- task-description: add radio button to as take off point updation options
- task-description: create popup to choose take off point updation option
- task-description: make mobile responsive
- add useWindowDimensions hook
- task-description: update download flight plan design
- task-description: update popup data
- added user info in dependency
- Implement forgot password functionality with email reset link
- project-creation: add task generation info text
- add counts for total tasks and ongoing tasks in project retrieval
- landing-page: remove unused links
- landing-page: add jamaicaFlyingLab on client section
- round off to 2 decimal values the return value of side/front spacing converter function
- project-creation: replace switchTab with radio button to choose value type (altitude/gsd, overlap/spacing)
- add SwitchTab component
- project-creation: show equivalent overlap and spacing value of entered value as a info text
- project-creation: convert front and side space into front and side overlap on project creation payload
- roundoff to two decimal values on sideOverlap and frontOverlap values
- project-creation: add radio button to choose to input image overlap or image spacing and show input fields accordingly
- create utils function
getForwardSpacing,getSideSpacing,getSideOverlapandgetFrontOverlap - project-creation: show entered gsd/altitude equivalent values as a info text
- create utils function
gsdToAltitudeandaltitudeToGsd - add InfoMessage component
- project-creation: add task dimension limitation to 50-700
- project-dashboard: show project id insted of slug on project cards
- add proper execption handling in reset task
- add exception handling in get task state
- add reset task if locked
- Add optional filter for projects by current user
- user-profile: hide country_code
- task-description: download waypoint geojson
- project-dashboard: show popup on project click, the popup content has name id and go to project details button
- project-dashboard: increase project centroid pointing circle radius
- project-dashboard: remove center to nepal and set center to [0, 0] show all projects in the world with clustering
- project-dashboard: visible map by default
- updated the directory of task images path
- updated the directory of dem and map images on s3 bucket
- added the default site url for localhost
- added the dynamic site url for email notifications
- Automatically approve task locking when requested by project owner
- api download if split_area is false
- added exception handling on get task geometry
- added download tasl boundaries
- task-description: get
taskIdandprojectIdfrom url usingwindow.location.pathnameinsted ofuseParams - task-description: get
taskIdandprojectIdfrom url usingwindow.location.pathnameinsted ofuseParams - project-creation: add static form description
- project-creation: add base layer switcher and navigate to current user location button on AOI fill up step
- task-description: add base layer switcher and navigate to current user location button
- project-dashboard-card: refactor card UI styling and add project image
- project-creation: add new line typed layer on generate task to customize tasks outline style
- project-creation: capture map section and save as a file on redux state
- project-creartion: clear split geojson field and captured image state to false before task spliting api response
- project-creation: add map image on payload and set loading state true while capturing image
- individual-project: add geolocate control to redirect user to current location
- individual-project: add base layer switcher
- add
LocateTheUsercomponent to redirect user to their current location - individual-project: add
BaseLayerSwitcherUIfor baselayer switching - update the base layer list
- added logic to merge small polygon to near one smallest polygon
- Improve small polygon merging logic in splitBySquare method
- task-description: flight plan download using fetch and Blob
- individual-project: by default legend open and fix expand more/less issue
- dashbaord: add replace task id with task project task index
- task-description: add point count on description section
- added new image_url to store image file to s3 buckets
- create-project: add loader on project creation
- add link to edit profile
- add link to documentation
- task-description: show popup only on specified sources
- add
ShowPopupprops onAsyncPopupcomponent that accepts the function that returns the boolean value - added project_task_index on user task details endpoint
- Add no-fly-zones on project details
- update request function for auto approval
- shift the _shemas to _crud.py
- drone deps to get one drone
- DbDrone schema with crud functions
- working project routes using psycopg + pydantic models
- CI: use gh-workflows based deployment
- update GSD unit
- individual-project: show no-fly zone popup on nofly zone click
- task-description: refactor images uploading process
- task-description: refactor uploading images preview popup
- tsak-description: remove preview images from selected folders use icon insted cause it takes time to preview all the image if images are in large number or size
- project-dashboard: show slug insted of id on cards
- convert project area m2 to km2
- add converter function
m2ToKm2 - project-creation: make project description input a text area
- dashboard: wrap requested task listing component with hasErrorboundary
- task-descripion: add altitude on waypoints point click popup
- task-description: show description on popup of waypoints point on click
- get coordinates on properties on map feature click
- project-creation: add option to input
GSDoraltitudeon project creation - project-creation: add measurementType state on redux slice
- individual-project: show no-fly-zone on map
- individual-project: add legend on map
- create Legend component
- individual-project: show project boundary on map
- project-description: round off area to 3 decimal place and use task index insted of task id while displaying on task list
- Add no-fly-zones project details
- individual-project: remove index sent as an id prop on task rendering vectorLayer
- task-description: implement refactored response data on waypoints
- add
imageLayerOptionsprop tovectorLayercomponent - add
turf/meta - added pagination on list tasks
- added login auth on project read endpoint
- added project creator
- Update SQL query to insert multiple task events and refine the endpoints to include statistics and list all task statuses
- individual-project: list completed and ongoing tasks on contirbution section
- redirect to project dashboard on icon click
- individual-project: update task locking flow with detailed info
- individual-project: pass locked user id and name to properties of each tasks geojson
- individual-project: different popup message for unflyable tasks on map
- update name, task_area, user_id & user_id in project details endpoint
- dashboard: update body for rejecting
request for mappingand update the request logs and count - update request function for auto approval
- individual-task: set style and show toast message as per approval require for mapping
- Add requires_approval_from_manager_for_locking field to read_project endpoint
- landing-page: hide signin button and display button to redirect to dashboard if user is logged in
- dashboard: update request log api
- add wrap with
hasErrorBoundarycomponent to prevent the whole page crash issue - task-desctiption: filter data
- solve merge conflicts
- project-description: update waypoint style on map
- add
iconAnchorprops on `VectorLayer component - project-description: update design
- project-description: downlod flight plan
- project-description: implement api to show individual task description
- task-description: show project name on breadcrumb
- optimize code, add components
- retrieve taskId and projectId from params
- add progress bar image uploading
- add popover for images selection
- add preview Image component
- add image card component
- add task id retrieving from URL
- add action and reducer for droneOperatorTasks
- add callApiSimultaneously util
- add createChunkOfArray util
- add delay creator util
- add percentageCalculator util
- resolve merge conflicts
- individual-task: show waypoints on map
- individualTask: fetch task waypoint
- add
symbolPlacementprops toVectorLayercomponent - task-description: refactor folder structure and path
- add service for image upload
- add feature to upload folder
- add props for files count
- dashbaord: update task state text for filter
- dashbaord: add padding on task listing table row
- dashboard: implement task listing api
- dashboard: create TaskLogsTable
- update SQL query to map integer states to text with default for unknowns
- dashboard: show statistics loadings state
- dashboard: update card UI
- dashboard: implement api to to show tasks status with count
- dashboard: show request log count
- project-creation: accept only tiff/tif file as dem data
- project-creation: update manager aproval for locking task key and form UI
- add comment to task event update and render project ID when listing all tasks.
- Add statistics endpoint of task
- added task route
- added task ongoing, completed & requests count
- add popover for loading
- change files destination
- add componet for map section
- add slicer for drone operator page
- add route for drone operator task page
- add constants for drone operator task page
- add drone operator task header
- add question box component
- add description and uploads component
- add description box compoent
- add drone operator task page
- project-creation: update keys,refactor payload and post body as form data
- project-creation: update final output option values and front/side overlap keys
- project-creation: update key
dimensiontotask_split_dimension - project-creation: add opitons to set required/not-required approval for locking task for mapping
- Update field to use type
- change auto lock message and add TODO for function refactor
- Add automatic task lock option for project creators & drone operators
- project-creation: send post payload data as form data
- project-creation: make
Instructions for Drone OperatorsandDeadline for Submissionoptional - project-creation: add
side_overlap_percent,forward_overlap_percent anddemdata uplaod - refactor common component
UplaodArea - services: add request and response interceptors to handle access and refresh token expiry
- project-creation: add
image overlapandfinal output typefields on form - dashboard: add accept/reject task mapping request functionality
- dashboard: get requested task list
- dashboard: update cards UI to show active
- profile: show more details on profile section
- projects: make request for mapping task
- add endpoint to list all tasks for drone user with role validation
- project-creation: set tasks style and popup message as per task staus on map
- add button hide props on map popup component
- add image loading feature on
vectorLayercomponent - create-project: draw multipolygon no fly zone on Define AOI step
- useDrawTool: hide tooltip on cursor
- Implement read, create & delete operation on drone table
- Implement deletion of drone and associated drone flights in one query
- Add read-all operation for drones with schema validation
- Add delete operation for drone with schema validation
- Implement create & read operations for drone with schema validation
- run pre-commit hooks
- added slug on project table
- changes filename
- add email notification for mapping request approval & mapping request rejection
- Filter pending tasks by state in function
- add popup to tasks section
- change popup height
- add services for task state
- add a pop up to tasks map section
- add selectedTaskId to global state
- modify the asyncpopup component to incorporate dynamic button text
- combine tasks geojson from api into one
- fetch user profile when signing in with email and password
- add service for user Details
- change the logo in navbar to black
- use userDetails from google-login in profile section
- create a util function that parses the object from localstorage and returns value
- project-creation: Area validation on file upload as project area and no fly zone
- refactor
UploadAreacomponent to set validation from outside the component - projectDashboard: cluster projects on map view
- Buttons: add hover effect(underline text) on button hover
- create
VectorLayerWithClustercomponent - clear formstate after creating a project
- add GFDRR logo to landing page
- add 100km validation to drawn areas
- enable draw and reset project ares
- close the modal when navigating to projects section
- add reducer to reset drawn areas to initial state
- add type to geojson
- enable draw project area in define AOI section
- modify useDrawTool
- add a util reverseLineString
- add package mapbox-gl-draw-cutline-mode for drawing polygons
- add refresh token to local storage
- add modal to warn user of unsaved changes while exitting create project form
- hide add project button when signed in as drone operator (#79)
- add logic to split project shape by no-fly zones
- handle multiple polygons and multipolygons in no_fly_zones
- run: pre-commit on local
- auth/profile: solve refresh token access and update profile with PATCH method
- add contributor, task state, and outline to project detail API
- add gdal & fix: cluster name from secrets
- remove unnecessary field from projects schema
- added multipolygon_to_polygon in no_fly_zones
- run pre-commit hooks on backend code
- added deadline column for projects
- project-creation: Enhance schema with new fields and update metadata handling
- userprofile added for project creator
- run pre-commit hooks on backend code
- retrieve all projects based on author
- run pre-commit hooks on backend code
- add authentication and UUID to project creation; validate DB results with Pydantic schemas
- change favicon for the project
- change the dtm logo to red in navbar and signin overlay of landing pagwe
- navigate to projects sections if user is already logged in
- add button to navigate to landing page from login
- add back button in forgot password section
- add ci for database migrations
- change default route to / from /login
- add navigation to sign in page after click in dashboard
- add components for the landing page
- add custom accordion component
- add global state for showmenu
- add animations and constants used in landing page
- add landing page route in appRoutes
- add framer-motion package for landing page animations
- add asssets used in landing page
- individual project initial slicing
- upload project boundary when creating project
- able to draw in define aoi in form section
- implement api in projects section and add skeleton
- zoom to layer in project card map section
- add skeleton component for project cards
- add individual project routes in appRoutes
- complete google auth component
- add project list api in services and api folders
- add projectId to global state
- add service to upload task boundary
- add zoom to layer in create project forms map
- add package @turf/bbox to get bounding box of geojson
- add global state for userprofile tabs section
- add userprofile view
- add tabOptions for userprofile section in constants
- add custom component Tabs for userprofile section
- create form components for userprofile section
- add font Manrope and update tailwind config for landing page
- Implement raw query on register user & login user
- Implement raw query on project lists
- Implement encoode database connection & Add project creation, task creation endpoint with raw SQL queries
- Add deletion of associated tasks when deleting a project
- extra cors from environment and Key Check on docker-entrypoint in frontend
- dockerized frontend
- Implement bbox info on project list
- transferred dtm frontend to dronte tm
- add endpoints and functions for project retrieval
- callback endpoint
- google login endpoint
- callback endpoint
- google login endpoint
- compoes file updated for alembic migration
- me endpoint created which provides the current user info
- updated user models
- login api
- updated user models
- login api
- take photo at each point in kml file
- take photo at each point in waypoints
- generate each waypoints within a wayline
- generate waypoints for drones endpoint
- waypoint_crud api added
- set default rotation angle to 0
- update response for flight plan
- slove task locking and validation error in project creator (#381)
- prd: slove the status not updated after image processing
- reslove project completed status after images processing
- reslove email notification issues on valid author (#293)
- merge conflicts
- update the pdm lock file
- resolve merge conflict with main
- backend: reslove merge conflict with main branch
- backend: reslove merge conflict in pyproject.toml
- backend: returns values from calculations function
- backend: reslove merge conflict in pyproject.toml
- merge conflict
- merge conflict
- task-description: set height to update takeoff point button section (#281)
- project-details: add
/on api endpoint - remove await from assets download endpoint
- optimize project status calculation logic & update ongoing status count.
- update ongoing_task_count to count tasks in specific states of projects
- completed task status count
- resolve RuntimeError for missing event loop in AnyIO worker thread
- task-description: set height to update takeoff point button section
- merge conflict
- added asyncio event loop to call async update_task_state in process_images_from_s3
- project-details: available tasks not showing on table
- reslove merge conflict project and task schema
- refine the state of task processing
- adjust the state based on processing...
- remove comment from the task update function
- merge conflict
- update-userProfile: update background color
- individual-project: download orhophoto
- individual-project: table UI
- typo
- user-profile: navigate to complete profile only after the profile fetching is completed
- user-profile: minor UI
- ser-profile: make patch request on profile data change
- typo
- minor style
- typo
- added message if user do not sent old and new password
- issues reslove on updated date
- task-description: Remove BLOB middleware for processing result downloads
- get superuser from user table instead of access token
- handle exception if project not found in db
- task-description: date format
- status code for retrying
- merge conflict
- return empty list if project not found
- convert the str geomerty into feature collection
- project-creation: show error message detail insted of error message on post
- task-description: task description comments
- task-description: click event persists after the starting point is saved
- presigned url expiry time
- merge conflict
- return of get_take_off_point
- function to put file to s3
- assets extension
- dem file not found issue in waypoints
- changes area threshold
- map width in project detail page
- splitting project area into multiple taks
- increase reset password token expire time
- added exception handling in get user by email
- added password reset templates instead of plain text
- login issues with username & password
- merge conflict
- individual-project: show popup to lock task if there is no task status found
- project-dashboard: map crash issue on 0 project
- changes reset to unlock key
- Change user_id type from UUID to str
- project-dashboard: project list responsive
- dem path when downloading flightplan
- changes site_url to frontend url
- remove print line from user schemas
- remove commented code
- issues reslove on single task area download
- move base layer switcher before waypoint layer
- check if map is loaded before adding baselayer
- revert the .toml & .lock file
- restore the pdm lock & pyproject.toml
- download fligh plan
- remove project id from the s3 lists items
- check the images in s3 buckets
- S3_ENDPOINT fallback in .env.example
- missing S3_ENDPOINT in .env.example
- project image_url on project lists
- merge conflict with migrations file f87adf188a16
- remove image url from projects table & refractor upload file to s3 functions
- remove commented code
- chnages img_url to profile_img
- task splitter for small code
- merge small area aoi to near polygon
- project-creation-key-parameters: update min max value of altitude, image front and side overlap
- project-creation-basic-info: pass onchange and value of Controller to textarea as props
- project-creation: update endpoint
- upload project task boundaries
- frontend: single project details
- shift upload dem func to project logic file
- comment the unsed var
- pdm.lock: slove merge conflict with main branch
- issues on read task endpoint
- issues request_mapping & update state
- update user profile dashboard
- issues slove in get project endpoint
- remove xxx_crud.py from all module
- refine the project get all
- issues slove in get project details
- issues slove in list tasks
- resolve the merge conflict with main
- task statistics endpoint
- remove pending task api endpoint
- upload project task boundaries
- no fly zone cliping isuues
- get task waypoints
- fixes the task listing issues
- frontend: fixes task boundary api fail
- fixes the project creator issues
- reslove merge conflict with main
- rename functions name in pending tasks
- changes update to update_task_state
- import error from user_crud * user_routes
- added base class UserProfileIn & DbUserProfile
- drone schemas to delete drone
- log level using text level instead of number levels
- backend: attach lifespan to fastapi for startup events
- minio data volume name
- add env GOOGLE_LOGIN_REDIRECT_URI in .env.example
- removed `` typo from frontend/docker-entrypoint.sh
- frontend html copy to backend migrate from docker socket to docker volume
- typo
- dashboard: card UI
- project-description: increase text size of instruction
- source id/layer id duplication and layer removing issue on map rerender
- project-dashboard: hide map on project card
- individual-project: filter
UNLOCKED_TO_MAPstate on contributions task list - correct the task area in km2
- update sql raw query in get single project info
- update sql raw query using distinct with order by created_at
- update sql raw query based on project creator & drone operator
- individual-project: comment task filters
- create-project: error on project creation
- remove old raw sql query
- update sql raw query to update task status
- type issue on IRoute
- login: user profile blank issue while login using username password
- set requires_approval_from_manager_for_locking as optional in Pydantic model
- task-description: update endpoint
- VectorLayerWithCluster: disbale eslint
- remove unused raw sql query from get_tasks_by_user
- sql raw query & task approve status
- minio console accessible from internet
- crash issue on fileUpload component
- merge conflicts
- changes auto_lock_task to requires_approval_from_manager_for_locking
- merge conflict with migrations file 488158d3d5a8
- update finalout type as FinalOutput
- slove merge conflict with task_routes
- remove unused import
- Project-creation: restrict to proceed unless the project area and no-fly zone is added
- Resolve issues with access control and pending tasks retrieval for project creator
- email-templates: changes email format
- build issue
- frontend Dockerfile case FromAs
- docstring on function
- hot-fix: listed pending task based on project creator
- issue on task status post
- index.html download always on restart & rm migration from entrypoint script
- map loading state delayed issue
- create-project: validate area before file upload
- disable consistent return
- project: deleted task event when project deleted
- merge conflict with main
- backend: raw sql project deletion using encode/databases
- backend: correctly init and close database in fastapi startup lifecycle
- added task rejected email
- type error in service of task states
- prefill user name while google login
- change dimension of square from meter to km
- draw-tool: cursor style
- Handle None values for in project metadata
- no fly zones sent in task split post request and made optional
- change the placeholder in generate task section
- change the value of drawn area limit to 100km2
- linting issues
- enforce https callback url
- remove navbar until user fills the profile first
- temporarily remove publish option in create project section
- change label to metre in generate task section
- change the label of dimension to km
- add asterisk to required fields
- hide the add projects button when signedInAs drone operator
- merge conflict in pdm lock file
- reslove merge conflict on project schemas
- entrypoint use curl to donwload index.html
- frotnend tag
- use diff docker compsoe file
- compose on frontend entrypoint mnt
- docker-compsoe tag overrite $
- env on deploy
- migration: make executable
- remove unused import
- projects list endpoint
- user roles in user profile
- update user profile
- added a param name on auth
- remove db port setup
- merge conflict
- clone with ref instead of ref_name
- clone stage
- user id check in update profile api
- precommit on main branch
- precommit
- precommit
- case insensative FS err: add src/frontend/src/assets/images/LandingPage/DTM-logo-red.svg
- case insensative FS err: delete src/frontend/src/assets/images/LandingPage/{DTM-logo-red.svg && dtm-logo-red.svg}
- update precommit to use ubuntu-latest
- bucket name for frontend to support CNAME
- Dockerized Frontend for Development environment
- linting errors
- Resolve merge conflicts in user modules
- Resolve merge conflicts in project and user modules
- resolve merge conflicts with pdm.lock
- Resolve AttributeError for 'generator' object lacking 'query' attribute
- doc string on Database connection
- Dockerized Frontend for LIVE Environment
- api path
- Frontend Dockerfile for volume issue in development env
- remove not needed os.environ() call for CORS config
- redirect URL on homepage
- routing for frontend with fallback
- login api issue
- login api issue
- user-profile: revalidate user details data on basic details patch success
- remove user data fetching on projects page
- remove cluster layers on map component unmount
- email template loading to follow DRY principle
- reset_password endpoint to improve exception handling
- email templates name for notification
- remove commented-out code
- remove commented-out code
- make isMapLoaded optional prop on baselayer switcher
- base layer switching logic
- remove sectiion from footer
- refactor form validations
- change form requirements
- remove unused sections in the landing page
- change the map center
- remove notification icon
- remove flight parameters column
- refractor task module using pyscopg and pydantic
- user schams & remove fixme code
- Moved dependency functions to _crud.py & _deps.py
- Moved dependency functions to _deps.py and retained CRUD logic in _crud.py
- replace all refs to Database --> Connection (psycopg)
- rename outline_geojson & outline_no_fly_zones
- rename create_project route to POST on /projects
- update geojson parsing logic, add slugify to utils
- use psycopg connection pool
- project-creartion: move constant data to separate file
- change waypoint query key
- change type of api parameters
- individual-project: rename lock icon
- consolidate task comment creation into task events update endpoint
- user routes are kept in a single file
- remove role check for DRONE_PILOT from code
- backend: replace sqlalchemy db init entirely with encode/databases
- design of popUP in projects map section
- use getLocalStorageValue function in userProfile section
- modify the custom vector layer component to contain interactions
- change the variable name of projectArea
- update refs fmtm --> drone-tm
- revert and update migrations with '_at' for date columns
- design changes in login page
- change default route from / to /projects
- modify project card skeleton component for dynamic prop passing
- change
selectcomponent according to design