Skip to content

Repository files navigation

Litelist

Litelist is an opensource local network shopping portal. It is developed as a local alternative to craigslist and Encuentro24, and can be installed on low resource computers like the Raspberry Pi. It was initially developed by Dhruv Mehrotra and Andrew Gimma as “Othernet” through Mozilla WINS (Wireless Innovation for Network Societies) Challenge grant. It is now currently being developed by SayCel, and is beta-testing on Ole.net, a community network in Olekasasi, Kenya.

Lite.list is developed using Phoenix and Elixir programming language to provide a scalable, low latency solution for local networks or distributed systems.

Documentation below is a work in progress

Update from v0.0.1 to v0.1.0

  • Remove assets/node_modules from within your existing container
  • Run npm install within the assets folder, also from within the docker container

Dependencies

  • Docker
  • Docker Compose

Run locally

  1. Clone this repo
  2. cd Litelist
  3. chmod +x run.sh
  4. Make sure ports 4000 and 5432 (postgres) are free. Run brew services stop postgresql on Mac.
  5. docker-compose up --build
  6. docker-compose run web mix test to run tests.
  7. Note that it takes Webpack about 10 seconds to load js and css. We will work to improve this in the future.

Create first user

  1. docker-compose run web iex -S mix
  2. import Litelist.Factory
  3. attrs = %{username: "ADD_NAME_HERE"} Note: Don't change the password attr. The password will default to 'password'.
  4. insert(:neighbor, attrs)

Test authentication

  1. Go to localhost:4000 and login with credentials created from above
  2. localhost:4000/secret can only be seen by authenticated users

Note: See Docker usage below for more commands.

Docker usage

Run commands prepended with docker-compose run web

mix ecto.migrate becomes docker-compose run web mix ecto.migrate

mix ecto.migrate becomes docker-compose run web mix ecto.migrate

Amnesia database

Amnesia is an elixir wrapper around erlang's Mnesia database.

This database is used for settings because it has a stronger guarantee that it will be read than postgres has. As long as the site is up, the Mnesia SettingsDatabase should be available.

Setup

Note: Setup should be automatically handled in run.s

  1. docker-compose run web mix amnesia.create --database Litelist.Settings.SettingsDatabase --disk

Test environment setup

  1. docker-compose run web /bin/bash
  2. mkdir mnesia
  3. MIX_ENV=test mix amnesia.create --database Litelist.Settings.SettingsDatabase --disk

Some useful commands

  • docker-compose run web mix ecto.rollback
  • docker-compose run web mix ecto.migrate
  • docker-compose run web mix ecto.seed Seeds the database
  • docker-compose run web mix test
  • docker-compose run web /bin/bash
  • MIX_ENV=test mix ecto.reset Note: Reset test database after running the above command.
  • docker-compose run web mix coveralls
  • docker-compose run web mix coveralls.detail
  • docker-compose run web mix credo -a Credo is a static code analysis tool for the Elixir language with a focus on code consistency and teaching.
  • docker-compose run web mix docs Documents repo code. Check out docs/index.html
  • docker-compose run web mix format FILENAME Formats a file according to Elixir standards
  • docker-compose run web mix amnesia.create --database Litelist.Settings.SettingsDatabase --disk Create Mnesia database
  • docrw mix amnesia.drop -d Litelist.Settings.SettingsDatabase Drop Mnesia database

Troublehooting

  • docker-compose run web mix deps.update postgrex If you can't connect to the db

About

Lite.List, previously Othernet is a local network application for communication, content repository, and peer-to-peer sales application. Is intended to use on local networks without access to the internet. It is built with Elixer and is able to run on high latency data connection, and uses minimal computing resources.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
GitHub - saycel/Litelist: Lite.List, previously Othernet is a local network application for communication, content repository, and peer-to-peer sales application. Is intended to use on local networks without access to the internet. It is built with Elixer and is able to run on high latency data connection, and uses minimal computing resources. · GitHub
Skip to content

Repository files navigation

Litelist

Litelist is an opensource local network shopping portal. It is developed as a local alternative to craigslist and Encuentro24, and can be installed on low resource computers like the Raspberry Pi. It was initially developed by Dhruv Mehrotra and Andrew Gimma as “Othernet” through Mozilla WINS (Wireless Innovation for Network Societies) Challenge grant. It is now currently being developed by SayCel, and is beta-testing on Ole.net, a community network in Olekasasi, Kenya.

Lite.list is developed using Phoenix and Elixir programming language to provide a scalable, low latency solution for local networks or distributed systems.

Documentation below is a work in progress

Update from v0.0.1 to v0.1.0

  • Remove assets/node_modules from within your existing container
  • Run npm install within the assets folder, also from within the docker container

Dependencies

  • Docker
  • Docker Compose

Run locally

  1. Clone this repo
  2. cd Litelist
  3. chmod +x run.sh
  4. Make sure ports 4000 and 5432 (postgres) are free. Run brew services stop postgresql on Mac.
  5. docker-compose up --build
  6. docker-compose run web mix test to run tests.
  7. Note that it takes Webpack about 10 seconds to load js and css. We will work to improve this in the future.

Create first user

  1. docker-compose run web iex -S mix
  2. import Litelist.Factory
  3. attrs = %{username: "ADD_NAME_HERE"} Note: Don't change the password attr. The password will default to 'password'.
  4. insert(:neighbor, attrs)

Test authentication

  1. Go to localhost:4000 and login with credentials created from above
  2. localhost:4000/secret can only be seen by authenticated users

Note: See Docker usage below for more commands.

Docker usage

Run commands prepended with docker-compose run web

mix ecto.migrate becomes docker-compose run web mix ecto.migrate

mix ecto.migrate becomes docker-compose run web mix ecto.migrate

Amnesia database

Amnesia is an elixir wrapper around erlang's Mnesia database.

This database is used for settings because it has a stronger guarantee that it will be read than postgres has. As long as the site is up, the Mnesia SettingsDatabase should be available.

Setup

Note: Setup should be automatically handled in run.s

  1. docker-compose run web mix amnesia.create --database Litelist.Settings.SettingsDatabase --disk

Test environment setup

  1. docker-compose run web /bin/bash
  2. mkdir mnesia
  3. MIX_ENV=test mix amnesia.create --database Litelist.Settings.SettingsDatabase --disk

Some useful commands

  • docker-compose run web mix ecto.rollback
  • docker-compose run web mix ecto.migrate
  • docker-compose run web mix ecto.seed Seeds the database
  • docker-compose run web mix test
  • docker-compose run web /bin/bash
  • MIX_ENV=test mix ecto.reset Note: Reset test database after running the above command.
  • docker-compose run web mix coveralls
  • docker-compose run web mix coveralls.detail
  • docker-compose run web mix credo -a Credo is a static code analysis tool for the Elixir language with a focus on code consistency and teaching.
  • docker-compose run web mix docs Documents repo code. Check out docs/index.html
  • docker-compose run web mix format FILENAME Formats a file according to Elixir standards
  • docker-compose run web mix amnesia.create --database Litelist.Settings.SettingsDatabase --disk Create Mnesia database
  • docrw mix amnesia.drop -d Litelist.Settings.SettingsDatabase Drop Mnesia database

Troublehooting

  • docker-compose run web mix deps.update postgrex If you can't connect to the db

About

Lite.List, previously Othernet is a local network application for communication, content repository, and peer-to-peer sales application. Is intended to use on local networks without access to the internet. It is built with Elixer and is able to run on high latency data connection, and uses minimal computing resources.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - saycel/Litelist: Lite.List, previously Othernet is a local network application for communication, content repository, and peer-to-peer sales application. Is intended to use on local networks without access to the internet. It is built with Elixer and is able to run on high latency data connection, and uses minimal computing resources. · GitHub
Skip to content

Repository files navigation

Litelist

Litelist is an opensource local network shopping portal. It is developed as a local alternative to craigslist and Encuentro24, and can be installed on low resource computers like the Raspberry Pi. It was initially developed by Dhruv Mehrotra and Andrew Gimma as “Othernet” through Mozilla WINS (Wireless Innovation for Network Societies) Challenge grant. It is now currently being developed by SayCel, and is beta-testing on Ole.net, a community network in Olekasasi, Kenya.

Lite.list is developed using Phoenix and Elixir programming language to provide a scalable, low latency solution for local networks or distributed systems.

Documentation below is a work in progress

Update from v0.0.1 to v0.1.0

  • Remove assets/node_modules from within your existing container
  • Run npm install within the assets folder, also from within the docker container

Dependencies

  • Docker
  • Docker Compose

Run locally

  1. Clone this repo
  2. cd Litelist
  3. chmod +x run.sh
  4. Make sure ports 4000 and 5432 (postgres) are free. Run brew services stop postgresql on Mac.
  5. docker-compose up --build
  6. docker-compose run web mix test to run tests.
  7. Note that it takes Webpack about 10 seconds to load js and css. We will work to improve this in the future.

Create first user

  1. docker-compose run web iex -S mix
  2. import Litelist.Factory
  3. attrs = %{username: "ADD_NAME_HERE"} Note: Don't change the password attr. The password will default to 'password'.
  4. insert(:neighbor, attrs)

Test authentication

  1. Go to localhost:4000 and login with credentials created from above
  2. localhost:4000/secret can only be seen by authenticated users

Note: See Docker usage below for more commands.

Docker usage

Run commands prepended with docker-compose run web

mix ecto.migrate becomes docker-compose run web mix ecto.migrate

mix ecto.migrate becomes docker-compose run web mix ecto.migrate

Amnesia database

Amnesia is an elixir wrapper around erlang's Mnesia database.

This database is used for settings because it has a stronger guarantee that it will be read than postgres has. As long as the site is up, the Mnesia SettingsDatabase should be available.

Setup

Note: Setup should be automatically handled in run.s

  1. docker-compose run web mix amnesia.create --database Litelist.Settings.SettingsDatabase --disk

Test environment setup

  1. docker-compose run web /bin/bash
  2. mkdir mnesia
  3. MIX_ENV=test mix amnesia.create --database Litelist.Settings.SettingsDatabase --disk

Some useful commands

  • docker-compose run web mix ecto.rollback
  • docker-compose run web mix ecto.migrate
  • docker-compose run web mix ecto.seed Seeds the database
  • docker-compose run web mix test
  • docker-compose run web /bin/bash
  • MIX_ENV=test mix ecto.reset Note: Reset test database after running the above command.
  • docker-compose run web mix coveralls
  • docker-compose run web mix coveralls.detail
  • docker-compose run web mix credo -a Credo is a static code analysis tool for the Elixir language with a focus on code consistency and teaching.
  • docker-compose run web mix docs Documents repo code. Check out docs/index.html
  • docker-compose run web mix format FILENAME Formats a file according to Elixir standards
  • docker-compose run web mix amnesia.create --database Litelist.Settings.SettingsDatabase --disk Create Mnesia database
  • docrw mix amnesia.drop -d Litelist.Settings.SettingsDatabase Drop Mnesia database

Troublehooting

  • docker-compose run web mix deps.update postgrex If you can't connect to the db

About

Lite.List, previously Othernet is a local network application for communication, content repository, and peer-to-peer sales application. Is intended to use on local networks without access to the internet. It is built with Elixer and is able to run on high latency data connection, and uses minimal computing resources.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - saycel/Litelist: Lite.List, previously Othernet is a local network application for communication, content repository, and peer-to-peer sales application. Is intended to use on local networks without access to the internet. It is built with Elixer and is able to run on high latency data connection, and uses minimal computing resources. · GitHub
Skip to content

Repository files navigation

Litelist

Litelist is an opensource local network shopping portal. It is developed as a local alternative to craigslist and Encuentro24, and can be installed on low resource computers like the Raspberry Pi. It was initially developed by Dhruv Mehrotra and Andrew Gimma as “Othernet” through Mozilla WINS (Wireless Innovation for Network Societies) Challenge grant. It is now currently being developed by SayCel, and is beta-testing on Ole.net, a community network in Olekasasi, Kenya.

Lite.list is developed using Phoenix and Elixir programming language to provide a scalable, low latency solution for local networks or distributed systems.

Documentation below is a work in progress

Update from v0.0.1 to v0.1.0

  • Remove assets/node_modules from within your existing container
  • Run npm install within the assets folder, also from within the docker container

Dependencies

  • Docker
  • Docker Compose

Run locally

  1. Clone this repo
  2. cd Litelist
  3. chmod +x run.sh
  4. Make sure ports 4000 and 5432 (postgres) are free. Run brew services stop postgresql on Mac.
  5. docker-compose up --build
  6. docker-compose run web mix test to run tests.
  7. Note that it takes Webpack about 10 seconds to load js and css. We will work to improve this in the future.

Create first user

  1. docker-compose run web iex -S mix
  2. import Litelist.Factory
  3. attrs = %{username: "ADD_NAME_HERE"} Note: Don't change the password attr. The password will default to 'password'.
  4. insert(:neighbor, attrs)

Test authentication

  1. Go to localhost:4000 and login with credentials created from above
  2. localhost:4000/secret can only be seen by authenticated users

Note: See Docker usage below for more commands.

Docker usage

Run commands prepended with docker-compose run web

mix ecto.migrate becomes docker-compose run web mix ecto.migrate

mix ecto.migrate becomes docker-compose run web mix ecto.migrate

Amnesia database

Amnesia is an elixir wrapper around erlang's Mnesia database.

This database is used for settings because it has a stronger guarantee that it will be read than postgres has. As long as the site is up, the Mnesia SettingsDatabase should be available.

Setup

Note: Setup should be automatically handled in run.s

  1. docker-compose run web mix amnesia.create --database Litelist.Settings.SettingsDatabase --disk

Test environment setup

  1. docker-compose run web /bin/bash
  2. mkdir mnesia
  3. MIX_ENV=test mix amnesia.create --database Litelist.Settings.SettingsDatabase --disk

Some useful commands

  • docker-compose run web mix ecto.rollback
  • docker-compose run web mix ecto.migrate
  • docker-compose run web mix ecto.seed Seeds the database
  • docker-compose run web mix test
  • docker-compose run web /bin/bash
  • MIX_ENV=test mix ecto.reset Note: Reset test database after running the above command.
  • docker-compose run web mix coveralls
  • docker-compose run web mix coveralls.detail
  • docker-compose run web mix credo -a Credo is a static code analysis tool for the Elixir language with a focus on code consistency and teaching.
  • docker-compose run web mix docs Documents repo code. Check out docs/index.html
  • docker-compose run web mix format FILENAME Formats a file according to Elixir standards
  • docker-compose run web mix amnesia.create --database Litelist.Settings.SettingsDatabase --disk Create Mnesia database
  • docrw mix amnesia.drop -d Litelist.Settings.SettingsDatabase Drop Mnesia database

Troublehooting

  • docker-compose run web mix deps.update postgrex If you can't connect to the db

About

Lite.List, previously Othernet is a local network application for communication, content repository, and peer-to-peer sales application. Is intended to use on local networks without access to the internet. It is built with Elixer and is able to run on high latency data connection, and uses minimal computing resources.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' GitHub - saycel/Litelist: Lite.List, previously Othernet is a local network application for communication, content repository, and peer-to-peer sales application. Is intended to use on local networks without access to the internet. It is built with Elixer and is able to run on high latency data connection, and uses minimal computing resources. · GitHub
Skip to content

Repository files navigation

Litelist

Litelist is an opensource local network shopping portal. It is developed as a local alternative to craigslist and Encuentro24, and can be installed on low resource computers like the Raspberry Pi. It was initially developed by Dhruv Mehrotra and Andrew Gimma as “Othernet” through Mozilla WINS (Wireless Innovation for Network Societies) Challenge grant. It is now currently being developed by SayCel, and is beta-testing on Ole.net, a community network in Olekasasi, Kenya.

Lite.list is developed using Phoenix and Elixir programming language to provide a scalable, low latency solution for local networks or distributed systems.

Documentation below is a work in progress

Update from v0.0.1 to v0.1.0

  • Remove assets/node_modules from within your existing container
  • Run npm install within the assets folder, also from within the docker container

Dependencies

  • Docker
  • Docker Compose

Run locally

  1. Clone this repo
  2. cd Litelist
  3. chmod +x run.sh
  4. Make sure ports 4000 and 5432 (postgres) are free. Run brew services stop postgresql on Mac.
  5. docker-compose up --build
  6. docker-compose run web mix test to run tests.
  7. Note that it takes Webpack about 10 seconds to load js and css. We will work to improve this in the future.

Create first user

  1. docker-compose run web iex -S mix
  2. import Litelist.Factory
  3. attrs = %{username: "ADD_NAME_HERE"} Note: Don't change the password attr. The password will default to 'password'.
  4. insert(:neighbor, attrs)

Test authentication

  1. Go to localhost:4000 and login with credentials created from above
  2. localhost:4000/secret can only be seen by authenticated users

Note: See Docker usage below for more commands.

Docker usage

Run commands prepended with docker-compose run web

mix ecto.migrate becomes docker-compose run web mix ecto.migrate

mix ecto.migrate becomes docker-compose run web mix ecto.migrate

Amnesia database

Amnesia is an elixir wrapper around erlang's Mnesia database.

This database is used for settings because it has a stronger guarantee that it will be read than postgres has. As long as the site is up, the Mnesia SettingsDatabase should be available.

Setup

Note: Setup should be automatically handled in run.s

  1. docker-compose run web mix amnesia.create --database Litelist.Settings.SettingsDatabase --disk

Test environment setup

  1. docker-compose run web /bin/bash
  2. mkdir mnesia
  3. MIX_ENV=test mix amnesia.create --database Litelist.Settings.SettingsDatabase --disk

Some useful commands

  • docker-compose run web mix ecto.rollback
  • docker-compose run web mix ecto.migrate
  • docker-compose run web mix ecto.seed Seeds the database
  • docker-compose run web mix test
  • docker-compose run web /bin/bash
  • MIX_ENV=test mix ecto.reset Note: Reset test database after running the above command.
  • docker-compose run web mix coveralls
  • docker-compose run web mix coveralls.detail
  • docker-compose run web mix credo -a Credo is a static code analysis tool for the Elixir language with a focus on code consistency and teaching.
  • docker-compose run web mix docs Documents repo code. Check out docs/index.html
  • docker-compose run web mix format FILENAME Formats a file according to Elixir standards
  • docker-compose run web mix amnesia.create --database Litelist.Settings.SettingsDatabase --disk Create Mnesia database
  • docrw mix amnesia.drop -d Litelist.Settings.SettingsDatabase Drop Mnesia database

Troublehooting

  • docker-compose run web mix deps.update postgrex If you can't connect to the db

About

Lite.List, previously Othernet is a local network application for communication, content repository, and peer-to-peer sales application. Is intended to use on local networks without access to the internet. It is built with Elixer and is able to run on high latency data connection, and uses minimal computing resources.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - saycel/Litelist: Lite.List, previously Othernet is a local network application for communication, content repository, and peer-to-peer sales application. Is intended to use on local networks without access to the internet. It is built with Elixer and is able to run on high latency data connection, and uses minimal computing resources. · GitHub
Skip to content

Repository files navigation

Litelist

Litelist is an opensource local network shopping portal. It is developed as a local alternative to craigslist and Encuentro24, and can be installed on low resource computers like the Raspberry Pi. It was initially developed by Dhruv Mehrotra and Andrew Gimma as “Othernet” through Mozilla WINS (Wireless Innovation for Network Societies) Challenge grant. It is now currently being developed by SayCel, and is beta-testing on Ole.net, a community network in Olekasasi, Kenya.

Lite.list is developed using Phoenix and Elixir programming language to provide a scalable, low latency solution for local networks or distributed systems.

Documentation below is a work in progress

Update from v0.0.1 to v0.1.0

  • Remove assets/node_modules from within your existing container
  • Run npm install within the assets folder, also from within the docker container

Dependencies

  • Docker
  • Docker Compose

Run locally

  1. Clone this repo
  2. cd Litelist
  3. chmod +x run.sh
  4. Make sure ports 4000 and 5432 (postgres) are free. Run brew services stop postgresql on Mac.
  5. docker-compose up --build
  6. docker-compose run web mix test to run tests.
  7. Note that it takes Webpack about 10 seconds to load js and css. We will work to improve this in the future.

Create first user

  1. docker-compose run web iex -S mix
  2. import Litelist.Factory
  3. attrs = %{username: "ADD_NAME_HERE"} Note: Don't change the password attr. The password will default to 'password'.
  4. insert(:neighbor, attrs)

Test authentication

  1. Go to localhost:4000 and login with credentials created from above
  2. localhost:4000/secret can only be seen by authenticated users

Note: See Docker usage below for more commands.

Docker usage

Run commands prepended with docker-compose run web

mix ecto.migrate becomes docker-compose run web mix ecto.migrate

mix ecto.migrate becomes docker-compose run web mix ecto.migrate

Amnesia database

Amnesia is an elixir wrapper around erlang's Mnesia database.

This database is used for settings because it has a stronger guarantee that it will be read than postgres has. As long as the site is up, the Mnesia SettingsDatabase should be available.

Setup

Note: Setup should be automatically handled in run.s

  1. docker-compose run web mix amnesia.create --database Litelist.Settings.SettingsDatabase --disk

Test environment setup

  1. docker-compose run web /bin/bash
  2. mkdir mnesia
  3. MIX_ENV=test mix amnesia.create --database Litelist.Settings.SettingsDatabase --disk

Some useful commands

  • docker-compose run web mix ecto.rollback
  • docker-compose run web mix ecto.migrate
  • docker-compose run web mix ecto.seed Seeds the database
  • docker-compose run web mix test
  • docker-compose run web /bin/bash
  • MIX_ENV=test mix ecto.reset Note: Reset test database after running the above command.
  • docker-compose run web mix coveralls
  • docker-compose run web mix coveralls.detail
  • docker-compose run web mix credo -a Credo is a static code analysis tool for the Elixir language with a focus on code consistency and teaching.
  • docker-compose run web mix docs Documents repo code. Check out docs/index.html
  • docker-compose run web mix format FILENAME Formats a file according to Elixir standards
  • docker-compose run web mix amnesia.create --database Litelist.Settings.SettingsDatabase --disk Create Mnesia database
  • docrw mix amnesia.drop -d Litelist.Settings.SettingsDatabase Drop Mnesia database

Troublehooting

  • docker-compose run web mix deps.update postgrex If you can't connect to the db

About

Lite.List, previously Othernet is a local network application for communication, content repository, and peer-to-peer sales application. Is intended to use on local networks without access to the internet. It is built with Elixer and is able to run on high latency data connection, and uses minimal computing resources.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); })(); GitHub - saycel/Litelist: Lite.List, previously Othernet is a local network application for communication, content repository, and peer-to-peer sales application. Is intended to use on local networks without access to the internet. It is built with Elixer and is able to run on high latency data connection, and uses minimal computing resources. · GitHub
Skip to content

Repository files navigation

Litelist

Litelist is an opensource local network shopping portal. It is developed as a local alternative to craigslist and Encuentro24, and can be installed on low resource computers like the Raspberry Pi. It was initially developed by Dhruv Mehrotra and Andrew Gimma as “Othernet” through Mozilla WINS (Wireless Innovation for Network Societies) Challenge grant. It is now currently being developed by SayCel, and is beta-testing on Ole.net, a community network in Olekasasi, Kenya.

Lite.list is developed using Phoenix and Elixir programming language to provide a scalable, low latency solution for local networks or distributed systems.

Documentation below is a work in progress

Update from v0.0.1 to v0.1.0

  • Remove assets/node_modules from within your existing container
  • Run npm install within the assets folder, also from within the docker container

Dependencies

  • Docker
  • Docker Compose

Run locally

  1. Clone this repo
  2. cd Litelist
  3. chmod +x run.sh
  4. Make sure ports 4000 and 5432 (postgres) are free. Run brew services stop postgresql on Mac.
  5. docker-compose up --build
  6. docker-compose run web mix test to run tests.
  7. Note that it takes Webpack about 10 seconds to load js and css. We will work to improve this in the future.

Create first user

  1. docker-compose run web iex -S mix
  2. import Litelist.Factory
  3. attrs = %{username: "ADD_NAME_HERE"} Note: Don't change the password attr. The password will default to 'password'.
  4. insert(:neighbor, attrs)

Test authentication

  1. Go to localhost:4000 and login with credentials created from above
  2. localhost:4000/secret can only be seen by authenticated users

Note: See Docker usage below for more commands.

Docker usage

Run commands prepended with docker-compose run web

mix ecto.migrate becomes docker-compose run web mix ecto.migrate

mix ecto.migrate becomes docker-compose run web mix ecto.migrate

Amnesia database

Amnesia is an elixir wrapper around erlang's Mnesia database.

This database is used for settings because it has a stronger guarantee that it will be read than postgres has. As long as the site is up, the Mnesia SettingsDatabase should be available.

Setup

Note: Setup should be automatically handled in run.s

  1. docker-compose run web mix amnesia.create --database Litelist.Settings.SettingsDatabase --disk

Test environment setup

  1. docker-compose run web /bin/bash
  2. mkdir mnesia
  3. MIX_ENV=test mix amnesia.create --database Litelist.Settings.SettingsDatabase --disk

Some useful commands

  • docker-compose run web mix ecto.rollback
  • docker-compose run web mix ecto.migrate
  • docker-compose run web mix ecto.seed Seeds the database
  • docker-compose run web mix test
  • docker-compose run web /bin/bash
  • MIX_ENV=test mix ecto.reset Note: Reset test database after running the above command.
  • docker-compose run web mix coveralls
  • docker-compose run web mix coveralls.detail
  • docker-compose run web mix credo -a Credo is a static code analysis tool for the Elixir language with a focus on code consistency and teaching.
  • docker-compose run web mix docs Documents repo code. Check out docs/index.html
  • docker-compose run web mix format FILENAME Formats a file according to Elixir standards
  • docker-compose run web mix amnesia.create --database Litelist.Settings.SettingsDatabase --disk Create Mnesia database
  • docrw mix amnesia.drop -d Litelist.Settings.SettingsDatabase Drop Mnesia database

Troublehooting

  • docker-compose run web mix deps.update postgrex If you can't connect to the db

About

Lite.List, previously Othernet is a local network application for communication, content repository, and peer-to-peer sales application. Is intended to use on local networks without access to the internet. It is built with Elixer and is able to run on high latency data connection, and uses minimal computing resources.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages