... but you can still just fork it, host your own server, and change the server addresses, ctrl+f for "onrender" in all the files in lib
and replace those URIs with your own server, and also change those Github URIs in update.dart.
For now, the app should still work but you probably want to host your own server as I'm using a free server host.
Mainly because of my pre-Rust/pre-OOP self writing terrible code. Many odd decisions like having each page have their own web request functions instead of generalising it and placing a web request function in a separate file, separate files for UI/Views and logic, using Flutter, etc. The app is still technically "functional". I am very proud of my web scraping server though, and that's probably the only thing. I may come back to this project however, I will most likely not be coming back to this repository.
The (new) app for reSentral, a mobile-focused redesign and port of the Sentral school management system (student-side). This was created because of an active and burning disdain for the poor design of Sentral's web interface, mainly considering the mobile space. Additionally, the lack of 'Remember Me' functionality for login (while understandable) was also inconvenient.
This is an app designed and programmed by a student who is a 100% self-taught software developer. Hence, bugs, missing functionality, and broken features are to be expected as it is not "production-ready" levels of code cleanliness.
The backend for this project can be found at this repository and is written entirely in Rust using axum for server and network, and using fantoccini. The server is also containerised with a Dockerfile.
It's working enough to see the Daily Timetable, Full/Weekly Timetable, and Announcements.
The original design doc (before the switch to a 'Material You' style) is available on Figma and is free to view with this link below. https://www.figma.com/file/HwetJzpdpT6fbwVp9CNSXf/reSentral-Flutter?type=design&node-id=30%3A118&t=xELudUcmqTbJcu8i-1
![](https://private-user-images.githubusercontent.com/48436180/237606012-b999b8f1-f9fd-4c10-abd4-f3d925743d92.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjI5MjE1NzEsIm5iZiI6MTcyMjkyMTI3MSwicGF0aCI6Ii80ODQzNjE4MC8yMzc2MDYwMTItYjk5OWI4ZjEtZjlmZC00YzEwLWFiZDQtZjNkOTI1NzQzZDkyLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MDYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODA2VDA1MTQzMVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWM1M2ZlMmJjOTNkM2Q1MDg5ZTNhNzMwZjhiMGZiMWM3Mjk1OWU2ZmQyY2IyYjk0MDRhZTA4MjNiN2QxZmMyMGQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.S1GdUeVSnBzv9nbaI-MWN4aIOBQtxL_JNj_mtxD6dVA)
![](https://private-user-images.githubusercontent.com/48436180/237606059-ebc74d41-177c-4c12-abe0-d98c83bd44d0.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjI5MjE1NzEsIm5iZiI6MTcyMjkyMTI3MSwicGF0aCI6Ii80ODQzNjE4MC8yMzc2MDYwNTktZWJjNzRkNDEtMTc3Yy00YzEyLWFiZTAtZDk4YzgzYmQ0NGQwLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MDYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODA2VDA1MTQzMVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTI4Y2QwZjVhNzUxOWY1ZGRkYTAwNTA1ZGYxNDNjMjZlYzU2OWY4NGFlMGE0NTZlMDRjMTMwZmRmMGE3NjY5OWEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.F20lcs86VzRTCIhwftZ8i5kUYpsD1aAMv_KfxDB1qxU)
![](https://private-user-images.githubusercontent.com/48436180/237606072-fa706fe8-10ac-4771-9fcd-c991e403c8ec.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjI5MjE1NzEsIm5iZiI6MTcyMjkyMTI3MSwicGF0aCI6Ii80ODQzNjE4MC8yMzc2MDYwNzItZmE3MDZmZTgtMTBhYy00NzcxLTlmY2QtYzk5MWU0MDNjOGVjLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MDYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODA2VDA1MTQzMVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTIyNjNiYjA4YjUyZDk3MTc2MjVmNmMwZmZkMWFjOGFjMzViN2IzYTVjM2U0NjUzMDRlZmMwYjcyYzVhOTIyZjgmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.V1fllXGqzhIthKSTLNnmmS9ESjp1_D4QZTG4MzTYYk8)
![](https://private-user-images.githubusercontent.com/48436180/237606109-d166a0a6-12e2-4e44-89bb-1d08f59b8fcd.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjI5MjE1NzEsIm5iZiI6MTcyMjkyMTI3MSwicGF0aCI6Ii80ODQzNjE4MC8yMzc2MDYxMDktZDE2NmEwYTYtMTJlMi00ZTQ0LTg5YmItMWQwOGY1OWI4ZmNkLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MDYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODA2VDA1MTQzMVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWNiODIzNDNlY2U5MGZhOWIxZDlhZWVlNTVlYzFiYzM4MDA3ODk0YjNkYzUwNDc3ZmExMTczMmYxMjU5ZjNjZDcmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.L4kAF28O5P9K40wfBlsuwDPOwlwFC_0UdztpxFqpDPw)
![](https://private-user-images.githubusercontent.com/48436180/237606121-5f8994ff-f4d7-4583-83e7-8e69b2e23327.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjI5MjE1NzEsIm5iZiI6MTcyMjkyMTI3MSwicGF0aCI6Ii80ODQzNjE4MC8yMzc2MDYxMjEtNWY4OTk0ZmYtZjRkNy00NTgzLTgzZTctOGU2OWIyZTIzMzI3LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MDYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODA2VDA1MTQzMVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWEyOTVjNDI3NjQ4YTAwNGQyMjVhZGI4ZTdlOTY2MzNlYWI4YmE5MmQ4OTU4Y2NkZTNiMDI1OGIwMjdmY2U4MmEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.TK59L8MbIQkMC2tnVzS1OUHYGuqDNtKPef6BD5ZCT84)
![](https://private-user-images.githubusercontent.com/48436180/237606192-cc8b781b-0160-44c7-8b67-29a3c8c96a2b.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjI5MjE1NzEsIm5iZiI6MTcyMjkyMTI3MSwicGF0aCI6Ii80ODQzNjE4MC8yMzc2MDYxOTItY2M4Yjc4MWItMDE2MC00NGM3LThiNjctMjlhM2M4Yzk2YTJiLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MDYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODA2VDA1MTQzMVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTU2MzVkMjczZmQ4MWUwYzljODdmYWMxYjdkNWE2MmU4NTY1Y2IwY2E5ZDdhOTAzNjM5MDhmYmE1ZTYyM2I3MjgmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.MBcH4BR9u7WHSIQ78puB5Rdf5t9dSsnGfiazcBvUzdY)
![](https://private-user-images.githubusercontent.com/48436180/237606212-c32cf800-3492-4ff8-ad23-82cd0f5dbf0b.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjI5MjE1NzEsIm5iZiI6MTcyMjkyMTI3MSwicGF0aCI6Ii80ODQzNjE4MC8yMzc2MDYyMTItYzMyY2Y4MDAtMzQ5Mi00ZmY4LWFkMjMtODJjZDBmNWRiZjBiLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MDYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODA2VDA1MTQzMVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTM2MTQ0OWJjYjNmNjQ2NTE5NzQ1NGI5MmIwMTlhZWMwYmZjOWI5MDY5MDY1MzYyNGE4Y2M1YjE3ODcxZGEzNDkmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.9x5f1hLao39_3WNL9kiTPkE1gww9QlVikTh0YDd6Rng)