Nearby allows creating spontaneous, ephemeral conversation channels, based on user location. The nearby client
component holds the client-side logic, and works in conjunction with nearby server.
- Conversation channels are geolocalized and open (no access control).
- Thus, the application allows searching for conversation channels nearby.
- Conversation channels are ephemeral, i.e. when the last user leaves a channel, the channel disappears.
- When disconnecting from the server (e.g. client application stops running), users will automatically leave their open conversations.
- The UI is currently based on Ionic 4.x and Angular 5.x.
- Socket.io for the client - server communication.
- Angular Redux store, aka NgRxStore, to manage the UI state.
- 3rd party components such as angular-linky or angular2-moment.
In order to run Nearby please install the nearby server first. Then, clone this repository and run:
$ sudo npm install -g ionic cordova
$ npm install
$ ionic serve
To launch Karma-Jasmine tests, please run:
$ npm test
Also, you can create a production build (minified, uglifyed, aot, ...) by running:
$ ionic build --prod --release
Upon successful build, the generated files will be available on the www
folder.
- Implement push notifications.
- Improve conversation window layout on iOS - safari.
- Add splash screen.
- Add unread badges on the main screen.
- Colorize conversation nicknames (IRC style).
- Implement channel information, add user count.
- Improve Unit test coverage.
- Add e2e protractor tests.
- Hide system notifications from unread count.
- Notifications for newly created nearby channels.
- Add Android + IOS platforms in Cordova + build native apps.
- Enrich chat capabilities: smileys, images, etc.
- Re-open previously open conversations upon user re-connection.