Rex Dri issueshttps://gitlab.utc.fr/rex-dri/rex-dri/-/issues2020-03-21T17:43:26Zhttps://gitlab.utc.fr/rex-dri/rex-dri/-/issues/31Filters2020-03-21T17:43:26ZFlorent ChehabFiltersCreate a filter component that will be available on the map and search pages.
This component should allow to filter (displayed or searchable) universities based on different criteria:
* [x] **Country / region**
* [ ] Type of departu...Create a filter component that will be available on the map and search pages.
This component should allow to filter (displayed or searchable) universities based on different criteria:
* [x] **Country / region**
* [ ] Type of departure (exchange / double degree)
* [ ] Language of the courses
* [x] Departure available for semester...
* [x] Departure open to departement...
* [x] People that already went there were comming from those departements.
* [ ] (bonus) university is in one of the user's list of university.
For now only the element in **bold** can be connected to the backend. So you should focus on the frontend and have the component "visually" ready with all possible filtering.
Have a look at #13 when this is done.PR-P20https://gitlab.utc.fr/rex-dri/rex-dri/-/issues/132Drop camel case from endpoints routes2020-03-21T17:41:31ZFlorent ChehabDrop camel case from endpoints routesswitxh to dash caseswitxh to dash casePR-P20https://gitlab.utc.fr/rex-dri/rex-dri/-/issues/136Better parsing DRI comment on offer2020-03-21T17:40:56ZFlorent ChehabBetter parsing DRI comment on offerPR-P20https://gitlab.utc.fr/rex-dri/rex-dri/-/issues/137Drop the city and campus model to simplify things a bit2020-06-19T14:20:56ZFlorent ChehabDrop the city and campus model to simplify things a bitAs you can see here https://rex-dri.gitlab.utc.fr/rex-dri/documentation/generated/architecture.svg the backend models architecture is a bit complicated.
To simplify things a bit, we want to:
* [ ] Drop the city model
* [ ] Drop the c...As you can see here https://rex-dri.gitlab.utc.fr/rex-dri/documentation/generated/architecture.svg the backend models architecture is a bit complicated.
To simplify things a bit, we want to:
* [ ] Drop the city model
* [ ] Drop the campus model
* [ ] All these information should be moved back to the `University`.
* [ ] There are also big changes to perform to the frontend.
This will be a big help for #187
How to do it?
1. Create a migration to add the missing columns to the University model,
2. Create a script to transfer the data from the city / campus models in the new columns,
-----
3. Update the backend serializers and viewsets,
5. Update the frontend.
-----
4. Delete the old models.PR-P20Gautier DauresGautier Daureshttps://gitlab.utc.fr/rex-dri/rex-dri/-/issues/138Add reminder to contribute for previous exchanges2020-05-06T18:57:09ZFlorent ChehabAdd reminder to contribute for previous exchanges**We should do our best to encourage students to contribute to the platform.**
Under the following constraints:
* There is no way for us to know for sure that a student has contributed for each of his or her real exchanges.
* We only kn...**We should do our best to encourage students to contribute to the platform.**
Under the following constraints:
* There is no way for us to know for sure that a student has contributed for each of his or her real exchanges.
* We only know about the student exchanges that he or she has given authorization to the DSI to share with REX-DRI.
So creating a smart / deterministic reminder might be too complicated.
*Sending reminder by emails, is out of the scope of this project.*
One possibility would be recurring notification, that show up once every few weeks / months after the last time the person has clicked on the popup.
PR-P20https://gitlab.utc.fr/rex-dri/rex-dri/-/issues/144Reload notifications every hour2020-05-31T09:49:22ZFlorent ChehabReload notifications every hourMake sure people don't miss important information even if they keep the app open.Make sure people don't miss important information even if they keep the app open.PR-P20https://gitlab.utc.fr/rex-dri/rex-dri/-/issues/148Filter only on currently available destinations2020-05-17T15:54:44ZFlorent ChehabFilter only on currently available destinations## Objective
* Being able to filter only on open destinations, [on the map and search pages (it's the same component)](https://rex.dri.utc.fr/app/map/)
## Context
### Back
* Every night, the UTC DRI data are copied from the DSI to RE...## Objective
* Being able to filter only on open destinations, [on the map and search pages (it's the same component)](https://rex.dri.utc.fr/app/map/)
## Context
### Back
* Every night, the UTC DRI data are copied from the DSI to REX-DRI [source](https://gitlab.utc.fr/rex-dri/rex-dri/-/blob/dev/backend/cron_tasks.py#L38)
* You should be able to plug yourself in the [`__import_opened_destinations` method](https://gitlab.utc.fr/rex-dri/rex-dri/-/blob/dev/backend/external_data/management/commands/utils.py#L199) and the [`update` method](https://gitlab.utc.fr/rex-dri/rex-dri/-/blob/dev/backend/external_data/management/commands/utils.py#L76), to track which partners are "open" on the UTC ENT.
* You should also know (and maybe use -- it's up to you) that some denormalized data is updated every night on the [`University` model](https://gitlab.utc.fr/rex-dri/rex-dri/-/blob/dev/backend/backend_app/models/university.py#L72). This is the data that is used for filtering.
### Front
* The filter Component is [here][https://gitlab.utc.fr/rex-dri/rex-dri/-/blob/dev/frontend/src/components/filter/Filter.jsx)
* The filtering itself is handled within the [`FilteringService` class](https://gitlab.utc.fr/rex-dri/rex-dri/-/blob/dev/frontend/src/services/FilterService.js)
Have fun :tada:
Bonus point if you throw some [transaction](https://docs.djangoproject.com/fr/2.2/topics/db/transactions/#controlling-transactions-explicitly) somewhere :rolling_eyes: PR-P20Imane MisrarImane Misrarhttps://gitlab.utc.fr/rex-dri/rex-dri/-/issues/149Last visited universities2020-06-07T12:16:19ZFlorent ChehabLast visited universitieshttps://gitlab.utc.fr/rex-dri/rex-dri/issues/149
Backend:
1. Create an intermediate model (LastVisitedUniversity) between the user and university models
* This model contains 3 fields : one for user (foreign key) , one for universi...https://gitlab.utc.fr/rex-dri/rex-dri/issues/149
Backend:
1. Create an intermediate model (LastVisitedUniversity) between the user and university models
* This model contains 3 fields : one for user (foreign key) , one for university (foreign key) and one for lastClickOnUniversity (DateTimeField: auto_now = True)
2. Create a viewset to update the previous model when a user looks at a university (get inspired by https://gitlab.utc.fr/rex-dri/rex-dri/-/blob/dev/backend/backend_app/viewsets.py#L316).
Endpoint: /lastVisitedUniversities
req POST endpoint/<pk_univ> => Create LastVisitedUniversity(user=req.user, university=University.get(pk=<pk_univ>), ~~ts=now()~~)
req GET endpoint => return List[LastVisitedUniversity.where(user=req.user).orderby(ts DESC).first(5)] (list[int] === List[<pk_univ>])
SQL:
```sql
SELECT university, max(ts) as ts
FROM LastVisitedUniversity
WHERE
USER = <req.user.pk>
GROUP BY university
ORDER BY ts DESC
LIMIT 5;
```
other => Return 404
Frontend:
1. When visiting university: make POST request (https://gitlab.utc.fr/rex-dri/rex-dri/-/blob/dev/frontend/src/components/recommendation/view/View.jsx#L676 use the useApiCreate() hook)
2. Create component to show last visited univ (and mention REX-DRI private)
PR-P20Imane MisrarImane Misrarhttps://gitlab.utc.fr/rex-dri/rex-dri/-/issues/154Material-UI slider as number input2020-03-21T17:39:12ZFlorent ChehabMaterial-UI slider as number inputhttps://material-ui.com/components/slider/https://material-ui.com/components/slider/PR-P20https://gitlab.utc.fr/rex-dri/rex-dri/-/issues/158Update material-ui imports to meet new standard and have better tree shaking2020-03-21T17:38:44ZFlorent ChehabUpdate material-ui imports to meet new standard and have better tree shakingPR-P20https://gitlab.utc.fr/rex-dri/rex-dri/-/issues/159Fix useless READ MORE markdown2020-05-03T15:45:13ZFlorent ChehabFix useless READ MORE markdownIn some cases, the "Read more button" is clearly useless (eg: https://rex.dri.utc.fr/app/university/203/previous-exchanges).
Before button click:
![Screenshot_from_2020-04-04_13-00-36](/uploads/07bf1d46f75d9e5b81da75e518543112/Screensho...In some cases, the "Read more button" is clearly useless (eg: https://rex.dri.utc.fr/app/university/203/previous-exchanges).
Before button click:
![Screenshot_from_2020-04-04_13-00-36](/uploads/07bf1d46f75d9e5b81da75e518543112/Screenshot_from_2020-04-04_13-00-36.png)
After button click:
![Screenshot_from_2020-04-04_13-00-46](/uploads/92c2f70c2f6b2f2d90ebed5e9188bf28/Screenshot_from_2020-04-04_13-00-46.png)
We need a better heuristic on when to hide the button (and show the whole text) and when to do the opposite.PR-P20Estelle VeisemburgerEstelle Veisemburgerhttps://gitlab.utc.fr/rex-dri/rex-dri/-/issues/166Move all hooks and hoc to respective folders2020-03-21T17:37:59ZFlorent ChehabMove all hooks and hoc to respective foldersPR-P20https://gitlab.utc.fr/rex-dri/rex-dri/-/issues/173Redesign Home page2020-03-21T17:37:28ZFlorent ChehabRedesign Home pageMake it more appealing, move update info elsewhere.
Possibilities:
* Add map
* last updatedMake it more appealing, move update info elsewhere.
Possibilities:
* Add map
* last updatedPR-P20https://gitlab.utc.fr/rex-dri/rex-dri/-/issues/174Keep track of the latest contributions, add it to the front home page.2020-06-07T12:26:23ZFlorent ChehabKeep track of the latest contributions, add it to the front home page.* Track the latest contributions to the website (in the backend),
* On the front page, display something like:
```
Dernières contributions
---
Le 20/04 : Université ...
Université ...
Le 19/04: Toto ...
```
Or something ...* Track the latest contributions to the website (in the backend),
* On the front page, display something like:
```
Dernières contributions
---
Le 20/04 : Université ...
Université ...
Le 19/04: Toto ...
```
Or something else.
The main point here is to show how lively the website is.PR-P20Gautier DauresGautier Daureshttps://gitlab.utc.fr/rex-dri/rex-dri/-/issues/175map: add legend2020-04-25T16:44:44ZFlorent Chehabmap: add legendAdd legend to explain what are the two colors.
* [ ] Create a legend component
* [ ] Overlay on top of the map
* [ ] Works for both in dark and light mode
![Screenshot_from_2020-04-04_12-56-46](/uploads/00f54ed50444817f8103ca5289e8a7f7...Add legend to explain what are the two colors.
* [ ] Create a legend component
* [ ] Overlay on top of the map
* [ ] Works for both in dark and light mode
![Screenshot_from_2020-04-04_12-56-46](/uploads/00f54ed50444817f8103ca5289e8a7f7/Screenshot_from_2020-04-04_12-56-46.png)
PR-P20Estelle VeisemburgerEstelle Veisemburgerhttps://gitlab.utc.fr/rex-dri/rex-dri/-/issues/176Add switch to only show exchanges with feedback on univ page2020-05-11T07:19:41ZFlorent ChehabAdd switch to only show exchanges with feedback on univ pageAs we can see on the screenshot bellow, most of exchanges are 'empty': nossing was contributed by the student concerned by the exchange.
The objective here is to add a switch next to `branch` to show only exchanges with contributions.
(...As we can see on the screenshot bellow, most of exchanges are 'empty': nossing was contributed by the student concerned by the exchange.
The objective here is to add a switch next to `branch` to show only exchanges with contributions.
(the switch should be active by default and if no exchanges match add a button to easily switch back it off)
:warning: think about the behavior we want when coming back to the page, etc.
![Screenshot_from_2020-04-04_13-29-40](/uploads/0fd9561aa15731381873df583ea9be05/Screenshot_from_2020-04-04_13-29-40.png)PR-P20Imane MisrarImane Misrarhttps://gitlab.utc.fr/rex-dri/rex-dri/-/issues/177Filter: give more suggestions & merge IM, GSM, GM ?2020-05-24T18:53:21ZFlorent ChehabFilter: give more suggestions & merge IM, GSM, GM ?> Dans la recherche, si je commence à taper « IM » dans le filtre par branche, seules quelques filières apparaissent. Je ne trouve pas « IM-CMI ». Il faut taper CMI pour faire apparaître IM-CMI et GSM-CMI (nécessité de garder les deux ?)> Dans la recherche, si je commence à taper « IM » dans le filtre par branche, seules quelques filières apparaissent. Je ne trouve pas « IM-CMI ». Il faut taper CMI pour faire apparaître IM-CMI et GSM-CMI (nécessité de garder les deux ?)PR-P20Estelle VeisemburgerEstelle Veisemburgerhttps://gitlab.utc.fr/rex-dri/rex-dri/-/issues/184Add stats regarding feedback completion2020-06-14T13:25:19ZFlorent ChehabAdd stats regarding feedback completionCompute basics statistics (dayly) regarding what is the percentage of exchange with feedbacks, how many new feedbacks, etc.Compute basics statistics (dayly) regarding what is the percentage of exchange with feedbacks, how many new feedbacks, etc.PR-P20Maxime EmschwillerMaxime Emschwillerhttps://gitlab.utc.fr/rex-dri/rex-dri/-/issues/185Move to the new material-UI autocomplete Component2020-06-07T12:18:45ZFlorent ChehabMove to the new material-UI autocomplete ComponentIt should be a good idea to switch to the new autocomplete component from Material-UI: https://material-ui.com/components/autocomplete/
It will simplify a bit the code-base.
Don't forget to make it fuzzy: https://material-ui.com/compone...It should be a good idea to switch to the new autocomplete component from Material-UI: https://material-ui.com/components/autocomplete/
It will simplify a bit the code-base.
Don't forget to make it fuzzy: https://material-ui.com/components/autocomplete/#advancedPR-P20https://gitlab.utc.fr/rex-dri/rex-dri/-/issues/188Update back and front deps2020-05-17T11:29:19ZFlorent ChehabUpdate back and front deps* [ ] back deps
* [ ] front deps
Will need to rebuild docker images too.* [ ] back deps
* [ ] front deps
Will need to rebuild docker images too.PR-P20