Estudiantech banner

Estudiantech

6 devlogs
8h 20m 13s

School portal based around Educamos.
It supports pretty much all the same features, but has an extremely better UI, faster API, extra features created by me and doesn’t have security issues everywhere :)

Zoe

Added profile popover on click and version news and changelog modal, and begun preparing the app for release by removing all embedded PII in it.

Attachment
Attachment
0
Zoe

Educamos just decided that they wanted to change the entire Calendar UI (ss 1, kinda garbage in my opinion, also using like half of the page :skulk:), and since my app gets its data from there I’ve had to redo the entire backend for this endpoint. The way it works now is it loads the full week’s timetable and then parses the specific day, making everything faster and allowing me to cache the rest of the week to make less requests.

In addition, I’ve also done a few miscellaneous fixes such as adding icons to the login page for light and dark mode (ss 2), and fixing some content not appearing on the first auth.

The app also now logs you out when auth expires (lol) instead of just showing broken content and requiring you to go to settings and reauth.

Attachment
Attachment
0
Zoe

Reversed the links to be able to insta log in to office and teams too, and added an option to set custom pfps.

Attachment
Attachment
0
Zoe

Added calendar (ss 1)! yay You can now view your timetable for the week, as well as if you have any exams. Thankfully educamos returns JSON here.

Also made a logo weirdly inspired by books :) (img 2, haters would say it doesn’t look like a book :3)

Finally, I added “circulares” (ss 3, documents sent by the school) and “incidencias” (ss 4, issues related to you). These were previously just stubs in the sidebar. These work through HTML.

Attachment
Attachment
Attachment
Attachment
0
Zoe

So yeah CDN has been down for a while… So this devlog is loooong :(( I promise I’ll go back to short devlogs right away (if stuff doesn’t break again :P) at least I’ll try to make this devlog as extense as possible.

Here’s what I’ve done atm:

1- Did a brief UI study on how Notion’s design works, and also made a moodboard

2- Made the UI for the homepage (ss 1) with sample data. I’m extremely proud of this design :)

3- Implemented “avisos” (notifications). This makes a request to Educamos’ API, reads the JSON it returns, and if necessary proxies the file it serves to be able to be downloaded on clients

4- Implemented “mis deberes y tareas” (tasks). Educamos decides that it wants to return an HTML instead of JSON, so I have to parse it and read it properly to be able to use it for my app

5- Birthdays. Educamos does return a JSON, so it’s as simple as analyzing that and proxying imgs

6- Notification counters (ss 2). Also JSON

7- “recent grades” info (ss 2). This fetches recent grades from Educamos (another HTML endpoint aaa) and parses it

8- Agenda. This gets the HTML from educamos, checks it’s for the correct day, finds any associated activities, and formats and shows it

9- Redirects for email and OneDrive (ss 3)

10- Grades and subjects page (ss 4 and 5). This was definitely the hardest part. When you ask Educamos for your subjects and grades, instead of returning a list of subjects with their grades as subitems, it returns ahuuge doc that I had to MANUALLY READ to find all associations between subjects and their grades. It contains them separate, with no linking between them by ID. Instead, you need to read every item, compare it against the list you have, guess if the item is a grade or a subject, and then analyze it

Help imma cry this has taken way too long but I won’t stop until it’s perfect and that’s all :) (pls vote this project well even if this is a big devlog it’s CDNs fault I’m losing my sanity aaaaaaa)

Attachment
Attachment
Attachment
Attachment
1

Comments

Zoe
Zoe 4 days ago

help this devlog was impossible to write, Flavortown didn’t like it being so long XD

Zoe

I started with a rough demo and looking around original endpoints as a base inspiration to develop my own system using Appwrite. I first need to check and distinguish between server and client resources.

Attachment
0