Skip to content

C0ZEN/Cogeo

Repository files navigation

Software License

Cogeo

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.

About Cogeo

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.

Getting Started

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 packages
  • package-win to create the windows package
  • package-lin to create the linux package

Running the tests

There is no test for now.
We don't have the time for that, sorry.

Built With

  • 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

Documentation

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 ;)

Contributing

Take your time to read the notes about how help us to make the documentation.

Versioning

The versioning is managed by our own.
You can checkout the tags for this repository.

Authors

License

This project is licensed under the MIT License - see the LICENSE.md file for details.

Acknowledgments