{"id":22794549,"url":"https://github.com/colintr/koboard","last_synced_at":"2025-03-30T17:43:33.243Z","repository":{"id":253954901,"uuid":"845042994","full_name":"ColinTr/KoBoard","owner":"ColinTr","description":"Shared dashboard to facilitate common tasks and communication between roommates","archived":false,"fork":false,"pushed_at":"2024-08-20T14:09:29.000Z","size":5148,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-05T19:59:50.838Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ColinTr.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-08-20T13:22:08.000Z","updated_at":"2024-11-01T13:34:51.000Z","dependencies_parsed_at":"2024-08-20T15:21:54.105Z","dependency_job_id":"cfaa9b02-619b-4943-a38d-47ab372f8c2f","html_url":"https://github.com/ColinTr/KoBoard","commit_stats":null,"previous_names":["colintr/koboard"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ColinTr%2FKoBoard","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ColinTr%2FKoBoard/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ColinTr%2FKoBoard/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ColinTr%2FKoBoard/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ColinTr","download_url":"https://codeload.github.com/ColinTr/KoBoard/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246357691,"owners_count":20764361,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-12T04:09:12.538Z","updated_at":"2025-03-30T17:43:33.224Z","avatar_url":"https://github.com/ColinTr.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e\n  KoBoard\n\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n Application designed to facilitate the management of a shared living space.\n It integrates note sharing, shopping list management, calendar synchronization, chat, budget tracking, task assignment, and music playback.\n\u003c/p\u003e\n\n\u003cdiv align=\"center\"\u003e\n \n  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\u003c/div\u003e\n\n\n## 🔍 Overview\n\nThis project was developed as part of the course \"\u003ci\u003eIFT 717 - Applications Internet \u0026 Mobilité\u003c/i\u003e\".\n\nThe project architecture consists of:\n\n1. A backend server using Express.js\n2. A web application built with React.js\n3. An Android mobile application\n\nThe backend server interacts with a MongoDB database hosted on a VPS and connects with various commercial APIs such as Spotify, Geonames, and Google Calendar.\n\n\n## 🏗️ Project structure\n\n### 1. Express.js backend server\n\nThe backend server is built using Express.js and serves as the central hub for data management and API communication.\nIt uses asynchronous JavaScript with promises to handle database access and API calls efficiently.\nIt is structured using the Route-Controller-Services architecture.\n\n\n### 2. React.js web application\n\nThe web application is built using React and provides a responsive interface for the following functionalities:\n\n- \u003cb\u003eHome:\u003c/b\u003e Integrated Spotify web player.\n- \u003cb\u003eKonotes:\u003c/b\u003e Shared note-taking with user tagging.\n- \u003cb\u003eKourses:\u003c/b\u003e Shared shopping lists.\n- \u003cb\u003eKotemps:\u003c/b\u003e Google Calendar integration.\n- \u003cb\u003eKochat:\u003c/b\u003e Real-time chat using socket.io.\n- \u003cb\u003eKognotte:\u003c/b\u003e Budget management.\n- \u003cb\u003eKoulette:\u003c/b\u003e Task assignment roulette.\n- \u003cb\u003eKusique:\u003c/b\u003e Spotify integration with geolocation-based playlist.\n\n![React web page illustration](illustration_react.png)\n\n#### OAuth Authentication\n\nOAuth authentication is implemented to allow users to log in using their Google accounts. The process involves token validation and redirection to ensure secure access.\n\n\n### 3. Android application\n\nThe Android application mirrors the functionalities of the web application, including login, notes, chat, ...\n\n![Android application illustration](illustration_android.png)\n\n\n## 💻 Installation \n\n### Backend server\n\n1. Clone the repository.\n2. Navigate to the \u003ci\u003eserveur_node_js\u003c/i\u003e directory.\n3. Install dependencies: `npm install`\n4. Start the server: `npm start`\n\n### Web application\n\n1. Navigate to the \u003ci\u003eserveur_react\u003c/i\u003e directory.\n2. Install dependencies: `npm install`\n3. Start the development server: `npm start`\n\n### Android application\n\n1. Open the project in [Android Studio](https://developer.android.com/studio).\n2. Sync the project with Gradle files.\n3. Run the application on an emulator or physical device.\n\n\n## 📂 Directory structure\n\n    ├── README.md                   \u003c- Le README du plus haut niveau qui décrit la structure du projet\n    │\n    ├── application_android         \u003c- Le projet du client Android\n    │   └── app.src\n    │       ├── androidTest\n    │       └── main.java.com.example.koboard\n    │           |   ├── httpUtils\n    │           |   ├── model\n    │           |   └── notification\n    │           |   └── resources\n    │           |   └── services\n    │           |   └── ui\n    │           └── test\n    │\n    ├── serveur_express             \u003c- Le serveur express backend (notre API)\n    │   ├── README.md\n    │   ├── public                  \n    │   └── src\n    │       ├── controllers         \u003c- Implémentation de la logique des routes\n    │       ├── models              \u003c- Modèle des objets de la BDD\n    │       ├── routes              \u003c- Définition des routes\n    │       ├── services            \u003c- Méthodes de gestion de la BDD\n    │       └── utils               \u003c- Fichiers de configuration et méthodes utilitaires\n    │       └── app.js\n    │\n    ├── serveur_react               \u003c- Le client Web frontend\n    │   ├── README.md\n    │   ├── public\n    │   └── src\n    │       ├── assets\n    │       ├── components\n    │       └── routes\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcolintr%2Fkoboard","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcolintr%2Fkoboard","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcolintr%2Fkoboard/lists"}