A way to get SUAP user information using cheerio in Nodejs
1. We are not responsible for any wrong uses!
2. This API can not modify or share your informations
3. Never share your cookies with others
In the main directory execute this command:
npm install
After:
- Create a file named .env with this content:
MATRICULA=<HERE SET YOUR MATRICULA>
CSRF_TOKEN=
SESSION_ID=
- Login SUAP with your account
- Get page's information using Ctrl+Shift+I (Chrome)
- Access cookies in Application > Storage > Cookies
- Set csrftoken value into .env file
- Set sessionid value into .env file
Execute this command:
npm start
If you want to set HTTP Server Port, please run this command:
PORT=<SET HERE> node src/server.js
Now we can get profile information, notifications, messages and virtual classes.
Returns a JSON with profile's principal information. Example:
localhost:3333/profile
{
"full_name": "Fulano da Silva Tal",
"matricula": "20191114010015",
"situation": "Matriculado",
"period": "2º",
"ira": "90,64",
"photo_profile_url": "https://suap.ifrn.edu.br/media/alunos/150x200/194797.kLdnb3i5yzas.jpg",
"fingerprint": "Sim"
}
Returns an array of JSON objects each one representing a SUAP's message. Example:
localhost:3333/messages
[
{
"from": "Danilo Henrique (111111)",
"title": "Minicurso: \"O corpo em movimento: orientações para manter-se ativo\"",
"date": "24/04/2020 22:19"
},
{
"from": "Jose Nascimento (111111)",
"title": "Auxílio emergencial ao cidadão",
"date": "14/04/2020 18:28"
},
...
]
Returns an array of JSON objects each one representing a SUAP's notification. Example:
localhost:3333/notifications
[
{
"date": "14/02/2020 13:53",
"text": "Saúde: Vacina Atrasada"
},
{
"date": "13/02/2020 13:53",
"text": "Saúde: Vacina Atrasada"
},
...
]
Returns an array of JSON objects each one representing SUAP's virtual classes. Example:
localhost:3333/virtualClasses
[
{
"virtual_id": "68405",
"name": "Gestão Organizacional (NA)",
"professor": "Maira Medeiros de Araujo"
},
{
"virtual_id": "68406",
"name": "Projeto de Desenvolvimento de Software (Curso 401)",
"professor": "Daniel Bruno Alves dos Santos"
},
{
"virtual_id": "68410",
"name": "Sociologia do Trabalho(30H)",
"professor": "Ana Eliza Trajano Soares"
},
...
]
Returns an array of JSON objects each one representing I.R.A.'s information. Example:
localhost:3333/iras
[
{
"period": "4",
"year": "2020/1",
"situation": "Matriculado",
"frequency": "98,48%",
"value": "-"
},
{
"period": "3",
"year": "2019/1",
"situation": "Aprovado",
"frequency": "97,41%",
"value": "84,63"
},
...
]
Returns an array with current curse's progress and an array of JSON objects each one representing curse's requirement. Example:
localhost:3333/requirements
{
"progress": "77.72%",
"requirements": [
{
"request": "Disciplinas Obrigatórias",
"situation": "Não-cumprido",
"ch_expected": "3570",
"ch_done": "2670",
"ch_pending": "900"
},
{
"request": "Seminários",
"situation": "Cumprido",
"ch_expected": "70",
"ch_done": "70",
"ch_pending": "0"
},
...
]
}
Returns an array of JSON objects each one representing studen's grades, frequency, total classes, situation etc. Example:
localhost:3333/reports
[
{
"subject": "Biologia II(120H)",
"total_classes": "16",
"total_lack": "0",
"frequency": "100%",
"situation": "Cursando",
"grades": {
"n1": "-",
"n2": "-",
"n3": "-",
"n4": "-"
}
},
}
"subject": "Qualidade de Vida e Trabalho",
"total_classes": "0",
"total_lack": "0",
"frequency": "100%",
"situation": "Cursando",
"grades": {
"n3": "-",
"n4": "-"
}
},
{
"subject": "Programação para Internet",
"total_classes": "13",
"total_lack": "2",
"frequency": "84,61%",
"situation": "Cursando",
"grades": {
"n1": "100",
"n2": "-",
"n3": "-",
"n4": "-"
}
},
...
]
Return arrays each one representing week's day with your classes times.
Where: 0 = Monday 1 = Tuesday 2 = Wednesday 3 = Thursday 4 = Friday
Example:
localhost:3333/classesTime
Return all days.
[
// monday [0]
[
{
"time": "13:00 - 13:45",
"class": "Biologia II(120H)"
},
{
"time": "13:45 - 14:30",
"class": "Biologia II(120H)"
},
...
],
// tuesday [1]
[
{
"time": "13:00 - 13:45",
"class": "Fundamentos de sistemas operacionais e Sistemas operacionais de redes"
},
{
"time": "13:45 - 14:30",
"class": "Fundamentos de sistemas operacionais e Sistemas operacionais de redes"
},
...
],
...
]
Return classes time of specific day.
Where: 0 = Monday 1 = Tuesday 2 = Wednesday 3 = Thursday 4 = Friday
Example:
localhost:3333/classesTime/0
Returns Monday's classes times.
[
{
"time": "13:00 - 13:45",
"class": "Biologia II(120H)"
},
{
"time": "13:45 - 14:30",
"class": "Biologia II(120H)"
},
...
]
Returns an array of JSON that contains last three meals requested. Example:
localhost:3333/meals
[
{
"request_date": "08/11/2019",
"to_date": "11/11/2019",
"type": "Jantar",
"reason": "Projeto integrador",
"situation": "Deferida"
},
{
"request_date": "18/10/2019",
"to_date": "21/10/2019",
"type": "Jantar",
"reason": "Projeto integrador",
"situation": "Deferida"
},
{
"request_date": "14/10/2019",
"to_date": "15/10/2019",
"type": "Jantar",
"reason": "Projeto integrador",
"situation": "Deferida"
}
]