Application designed to facilitate the management of a shared living space. It integrates note sharing, shopping list management, calendar synchronization, chat, budget tracking, task assignment, and music playback.
This project was developed as part of the course "IFT 717 - Applications Internet & Mobilité".
The project architecture consists of:
- A backend server using Express.js
- A web application built with React.js
- An Android mobile application
The backend server interacts with a MongoDB database hosted on a VPS and connects with various commercial APIs such as Spotify, Geonames, and Google Calendar.
The backend server is built using Express.js and serves as the central hub for data management and API communication. It uses asynchronous JavaScript with promises to handle database access and API calls efficiently. It is structured using the Route-Controller-Services architecture.
The web application is built using React and provides a responsive interface for the following functionalities:
- Home: Integrated Spotify web player.
- Konotes: Shared note-taking with user tagging.
- Kourses: Shared shopping lists.
- Kotemps: Google Calendar integration.
- Kochat: Real-time chat using socket.io.
- Kognotte: Budget management.
- Koulette: Task assignment roulette.
- Kusique: Spotify integration with geolocation-based playlist.
OAuth authentication is implemented to allow users to log in using their Google accounts. The process involves token validation and redirection to ensure secure access.
The Android application mirrors the functionalities of the web application, including login, notes, chat, ...
- Clone the repository.
- Navigate to the serveur_node_js directory.
- Install dependencies:
npm install - Start the server:
npm start
- Navigate to the serveur_react directory.
- Install dependencies:
npm install - Start the development server:
npm start
- Open the project in Android Studio.
- Sync the project with Gradle files.
- Run the application on an emulator or physical device.
├── README.md <- Le README du plus haut niveau qui décrit la structure du projet
│
├── application_android <- Le projet du client Android
│ └── app.src
│ ├── androidTest
│ └── main.java.com.example.koboard
│ | ├── httpUtils
│ | ├── model
│ | └── notification
│ | └── resources
│ | └── services
│ | └── ui
│ └── test
│
├── serveur_express <- Le serveur express backend (notre API)
│ ├── README.md
│ ├── public
│ └── src
│ ├── controllers <- Implémentation de la logique des routes
│ ├── models <- Modèle des objets de la BDD
│ ├── routes <- Définition des routes
│ ├── services <- Méthodes de gestion de la BDD
│ └── utils <- Fichiers de configuration et méthodes utilitaires
│ └── app.js
│
├── serveur_react <- Le client Web frontend
│ ├── README.md
│ ├── public
│ └── src
│ ├── assets
│ ├── components
│ └── routes

