A very simple but complete chat app like Slack and Discord.
You can manage groups, channels and users.
The design is 100% homemade.
Most of the components are custom (input, textarea, dropdown...).
We have a full control of the behavior and the design, via the cozen library.
Do you want to know more about the Cogeo app ?
Then this section if for you.
Languages and Frameworks :
- Front-End: AngularJS, HTML5, LESS, Electron, Grunt, Yeoman
- Back-End : NodeJS, Express, MongoDB, Mongoose, Heroku
Cozen library :
We created the cozen library at first to (re)create a lot of web components.
This library handle translations, themes and app configuration.
Plus, it give us a lot of generic services, filters and methods to increase the modularity for our apps.
Available translations :
- English [en]
- Français [fr]
Available themes :
- Atom
Config :
The config is extremly linked to the cozen library so we won't talk about all the possibilites in this repository. Basically, it's a bunch of providers to customize the app (we overrided it to add a specific internal config for Cogeo).
You just have to know that there are multiples usefull options to :
- Show/hide custom enhanced logs (super sexy logs in the console, multiple types to filter them)
- Show/hide a form generator (create random fake data and submit in less than 10ms ! Lazy as fuck we were)
Cogeo progression :
We almost achieve the first release version (~95% of our specifications).
We have a complete Back-Office for the user, the groups and the channels.
The only last feature not complete is the video call (hard to test).
We started the creation of Robots (IA) but there are not limit to all the improvements possibilities.
We have a complete Back-Office for the user, the groups and the channels (management is complete).
We are working on the chat last features (video chat and users status still missing).
We started the creation of Robots (IA).
API progression :
The API is over.
Before anything below, run npm install
to install the node_modules and bower_components.
Use grunt serve
to start the app.
This task is used to run a local node server, auto-refresh the app when files changed and avoid error with CORS by the fact that this JSON files must be served by a server.
Use grunt release
to create the minified version of the app.
This task is used to generate the folder used in production.
Note: you should copy the bower_components folder in the root of the release folder.
Use npm start
when the release is ready to start a live preview with electron.
This script is used to preview what electron will give us when running with the release folder.
Use npm run package-*
to create the electron packaged version of the app.
This is the complete list of package-*
commands :
package-all
to create all the avaialble packagespackage-win
to create the windows packagepackage-lin
to create the linux package
There is no test for now.
We don't have the time for that, sorry.
- Yeoman - The Web's scaffolding tool for modern webapps
- Angular - Superheroic JavaScript MVW Framework
- cozen - External custom library
- Cloudinary - Image and video management in the Cloud
- Electron - Build cross platform desktop apps with JavaScript, HTML, and CSS
- Trello - Todo list management
You can take a look at the documentation generated by GitHub Pages. These documentations are only here to explain our choices and how the stuff works, there are not technical. Note that they were written in French ;)
Take your time to read the notes about how help us to make the documentation.
The versioning is managed by our own.
You can checkout the tags for this repository.
- Geoffrey Testelin - Front-End Developer - C0ZEN
- Benoit Compere - Back-End Developer - BenoitCompere
- Paul Verbeke - Architect - paolovador
This project is licensed under the MIT License - see the LICENSE.md file for details.
- AdRoll UI Framework inspired theme by Mason Lee