{"id":22300113,"url":"https://github.com/rohitedathil/lights","last_synced_at":"2026-04-11T02:05:59.705Z","repository":{"id":138305653,"uuid":"442230372","full_name":"RohitEdathil/lights","owner":"RohitEdathil","description":"A project aiming to create a platform for visually challenged individuals to make use of their smart phones. Created as a part of HackMAS by CSI Trivandrum chapter.","archived":false,"fork":false,"pushed_at":"2022-01-17T05:10:15.000Z","size":3342,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-25T23:24:18.346Z","etag":null,"topics":["accessibility","app","dart","flutter","gesture-control","hackathon","object-detection","text-to-speech"],"latest_commit_sha":null,"homepage":"","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/RohitEdathil.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-12-27T17:41:11.000Z","updated_at":"2022-03-22T07:24:33.000Z","dependencies_parsed_at":null,"dependency_job_id":"b915e36e-57bb-48fa-8d06-06428e0fb760","html_url":"https://github.com/RohitEdathil/lights","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/RohitEdathil/lights","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RohitEdathil%2Flights","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RohitEdathil%2Flights/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RohitEdathil%2Flights/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RohitEdathil%2Flights/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RohitEdathil","download_url":"https://codeload.github.com/RohitEdathil/lights/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RohitEdathil%2Flights/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266071519,"owners_count":23871940,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["accessibility","app","dart","flutter","gesture-control","hackathon","object-detection","text-to-speech"],"created_at":"2024-12-03T18:09:12.966Z","updated_at":"2026-04-11T02:05:59.656Z","avatar_url":"https://github.com/RohitEdathil.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Lights\n\nA project aiming to create a platform for visually challenged individuals to make use of their smart phones.\nCreated as a part of HackMAS by CSI Trivandrum chapter.\nThis app currently has a few demo features. These features are just examples of what such a platform can do. **The real beauty of the project is not what it is now but, what it can be.**\n\n## Working\n\nThe project aims to solves the challenges by\n\n- Creating an easy to use inteface which only involves a few simple gestures.\n- Giving out responses only through voice.\n- Enabling other people to contribute to the project by creating new features.\n\n## Usage\n\nThere are two main aspects to this.\n\n### The main interface\n\u003cimg src=\"https://github.com/RohitEdathil/lights/blob/master/img/1.jpg\" style=\"width:300px\"\u003e\n\nIt contains a large, easily readable text which corresponds to the currently active function.\n\n- `Swiping vertically` will switch between the Home section and the Favourites section.\n\n- `Swiping horizontally` will switch between the functions in that section.\n\n- `Double tapping` will read the description of the function.\n\n- `Long pressing` will execute the function.\n\n### The settings\n\u003cimg src=\"https://github.com/RohitEdathil/lights/blob/master/img/4.jpg\" style=\"width:300px\"\u003e\nThis section is ment to be used by a regular person whom the user trusts. This person can help the user to change the settings of the app.\n\n#### App Settings\n\nHas the following options divided into sections:\n\n- Speech\n  - Adjust speech speed\n  - Adjust speech volume\n\u003cimg src=\"https://github.com/RohitEdathil/lights/blob/master/img/6.jpg\" style=\"width:300px\"\u003e\n\n\n- Feature\n  - Reorder the functions\n  - Add or remove items from Favorites\n  - Enable or disable a functions\n\u003cimg src=\"https://github.com/RohitEdathil/lights/blob/master/img/3.jpg\" style=\"width:300px\"\u003e\n#### Feature Settings\n\nContains all the settings offered by individual functions if they offer any.\n\n## Features\n\n- `Weather` : Tells the weather of a set location\n- `Date` : Tells the current date\n- `Time` : Tells the current time\n- `Call` : Calls a preset number\n- `Object Detection` : Detects objects infront of the camera\n\n## Adding a new feature\n\nThe central concept of this project is to provide a platform not the features it currently has. So it is crucial to have an easy way to add new features.\n\n### Step 1\n\nFamilirase with other features in the lib\\features folder. This is the folder where the features are kept. Familiarising will help you in understanding the project structure.\n\n### Step 2\n\nCreate a new folder in the lib\\features folder. This folder will contain the feature you want to add. Then create a file in this folder called `feature_name.dart`. This file will contain the code for the feature. Then create a file in this folder called `feature_name_settings.dart`. This file will contain the settings page widget for the feature (It is optional for features to offer settings, don't make this file if your feature doesn't have any settings).\n\n### Step 3\n\nImplement your feature by extending the `Feature` class from `lib\\feature.dart`.\n\n```dart\nimport 'package:flutter/material.dart';\n\n/// Add a constructor if you feel the need to.\nabstract class Feature {\n  /// Name of the feature.\n  String get name;\n\n  /// Description of the feature.\n  String get description;\n\n  /// Returns the settings page widget. If the feature does not have settings, return null.\n  Widget? get settingsPage;\n\n  /// Returns an icon for the feature. Only needed if the feature has a settings page. Else return null.\n  IconData? get icon;\n\n  /// Will be called when the feature is executed.\n  void execute();\n\n  /// Will be called only when the app is opened for the first time. Use to save preferences using SharedPreferences.\n  Future\u003cvoid\u003e init() async {}\n}\n\n```\n\n### Step 4\n\nRegister your feature in the `lib\\globals.dart` file.\n\n```dart\nallFeatures = {\n  \"home\": HomeFeature(),\n  \"favourites\": FavouritesFeature(),\n\n  // Register new features below\n  \"weather\": WeatherFeature(tts: tts, prefs: _prefs),\n  \"data\": DateFeature(tts: tts),\n  \"time\": TimeFeature(tts: tts, prefs: _prefs),\n  \"call\": CallFeature(prefs: _prefs),\n  \"object_detection\": DetectionFeature(tts: tts),\n    };\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frohitedathil%2Flights","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frohitedathil%2Flights","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frohitedathil%2Flights/lists"}