This API just works as an easy way to access the information gathered by USACH Course Scrapper; contains all the courses, careers and faculties we could get from public sources.
We think we have all careers, but we know that, for almost all careers, we only have courses up to the 6th level of tuition, or end of the 3rd year. We know this is a major flaw, as it means we're missing at least 10-12 courses per career, so we're planning and working on the possibility to add more courses to the database, probably internally, by using (scrapping hehe) the data given personally for each student about its career at the university's intranet.
- TypeScript with Hono.js
- Cloudflare Workers
- D1 Database (SQLite for Cloudflare Workers)
This API has three main endpoints, every one pretty self-explanatory:
| Route | Description |
|---|---|
| /courses | To get course data |
| /career | To get career data |
| /faculty | To get faculty data |
| Route | Description | Response |
|---|---|---|
| / | To get the data from all courses available | [ { id: int, name: string }, ... ] |
| /<course id> | To get the data from a course | [ { id: int, name: string } ] |
| /byFaculty/<faculty id> | To get the data from all courses taught at a faculty | { id: int, name: string }, ... ] |
| /byCareer/<career id> | To get the data from all courses taught at a career | { id: int, name: string }, ... ] |
| Route | Description | Response |
|---|---|---|
| / | To get the data from all careers available | [ { id: int, name: string, facultyId: int }, ... ] |
| /<career id> | To get the data from a career | [ { id: int, name: string, facultyId: int } ] |
| /byFaculty/<faculty id> | To get the data from all careers taught at a faculty | { id: int, name: string }, ... ] |
| Route | Description | Response |
|---|---|---|
| / | To get the data from all faculties available | [ { id: int, name: string }, ... ] |
| /<faculty id> | To get the data from a faculty | [ { id: int, name: string } ] |
You can get them by just calling /faculties, but we'll show them here just as an easy way to access them.
| Name | id | Note |
|---|---|---|
| Vicerrectoría Académica | 15 | No note |
| Vicerrectoría de Apoyo al Estudiante | 22 | Doesn't have any careers |
| Facultad de Ingeniería | 40 | No note |
| Facultad de Ciencia | 50 | No note |
| Facultad de Humanidades | 55 | No note |
| Facultad de Administración y Economía | 60 | No note |
| Facultad Tecnológica | 65 | No note |
| Facultad de Ciencias Médicas | 83 | No note |
| Facultad de Química y Biología | 95 | No note |
| Vicerrectoría de Postgrado | 110 | Doesn't have any careers |
| Vicerrectoría de Vinculación con el Medio | 120 | Doesn't have any careers |
| Facultad de Derecho | 125 | Only has one career |
We hope this API is useful and (with a bit of luck and work) just the first step in many interesting projects for our community :)
