Full school portal based around the Educamos API.
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 :)
Full school portal based around the Educamos API.
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 :)
I’ve done a bunch of server side improvements on the Coolify server running this so that logging in with Educamos was easier and faster (I’ve been able to reduce login time from 15s to around 6-7s max on most of my tests), and also fixed an issue in which when you were logged in as a demo user you could not download attachments on demo content. This way reviewers can’t say it doesn’t work, finally :3
Log in to leave a comment
I got asked to add translations before the project was approved so uhhh english is here
and that’s pretty much it for now :3 all demo data should now be translated and you can choose your language in settings. Note that you can’t change your language in demo mode, it’s now english only.
Log in to leave a comment
Make sure to log in with “demo” user and password!!
This is the first ship of the project, but it’s definitely not done :)) I’m working on a bunch of new social interactions for students to be able to access (uploading files, chatting…) that I’ll for sure build if this project is loved. Thx for voting! :)
Medium update and release ready :DDDDD
(ss 2) In case you want to access the app please user user “demo” and password “demo”.Log in to leave a comment
Added an Appwrite backend behind the app that stores the user’s profile picture and also implemented push notifications for event deadlines (also stored on the cloud).
Log in to leave a comment
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.
Log in to leave a comment
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.
Log in to leave a comment
Reversed the links to be able to insta log in to office and teams too, and added an option to set custom pfps.
Log in to leave a comment
Added calendar (ss 1)!
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.
Log in to leave a comment
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)
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.
Log in to leave a comment