Cette application a été développée en Ruby et plus précisemment via le framework Ruby on rails (RoR). Le but est de fournir une API qui s'inspire du style d'architecture RESTful permettant à l'application frontend de Note-thing d'accéder aux données persistantes.
L'application est scindée en deux partie distinctes :
- le frontent qui représente la visualisation et l'intéraction avec les données.
- le backend, ici même, contenant la couche métier et l'accès au SGBDR.
Ce projet a été réalisé dans le cadre d'un cours de la HEIG-VD. Pour plus plus d'informations sur les motivations du projet et avoir une vision globale du produit, n'hésitez pas à consulter notre Github.io ✌️.
L'application est présente à l'adresse note-thing.ch. N'hésitez-pas à y faire un tour 😇
- Docker engine : 20.10.*
- Docker compose
- NOTE: docker compose est inclus dans les installation de l'engine sur Windows et MacOS.
- Cloner le repository
git clone https://github.com/Note-thing/backend && cd backend
- Lancer le conteneur Docker
docker-compose up
- Créez un fichier
.env
, et mettez y la variable d'environnementJWT_SECRET='example'
. Vous pouvez vous inspirer de.env.example
ou le remplacer !
mv .env.example .env
Veillez à avoir une configuration gmail présente dans le .env
, via les variables EMAIl=example@gmail.com
et EMAIL_PASSWORD=password
.
Pour résumer, le fichier .env
doit contenir les informations suivantes :
JWT_SECRET='whateverYouWant'
EMAIL='example@gmail.com'
EMAIL_PASSWORD='password'
- Allez à l'adresse localhost:3001 et vous voilà prêt à contribuer 😎.
docker exec -it backend_app_1 /bin/bash
Vous pouvez ensuite intéragir avec rails via le docker.
Créer la db
rails db:create
Lancer les migrations
rails db:migrate
Lancer les seeds
rails db:seed
Lancer le serveur
rails s
Afficher les routes disponible
rake routes
Lancer les tests
rails spec
Vous trouverez sur notre wiki les éléments suivants :
Note-thing est un projet réalisé par des étudiants en ingénierie logiciel. Nous sommes ouverts aux avis d'experts. Vous trouverez un guide de contribution qui définit quelques en points clefs comment contribuer au projet.
Notre projet utilise la License apache.