The main.dart runs, and there's 4/5 routes,
-
The
/
route is the initial route when the app starts, and calls the SplashScreen class, which checks if the user is already logged in, if so then the user then goes on to the/home
route, if not then/login
-
The `/login' route, as the name implies makes the user log in, by asking the user for their ip of the backend server, its port, email address, and password. One may ask themselves, "Why the ip and port fields?", and you would be correct to question the port, it should for sure be deleted but for the ip the story is different. If you are in a machine running the server should be simple, then the port would be 127.0.0.1, but for iPhone one would need to specify the ip of which the server is hosted at, so that you can fetch the data from there, with Android the executable of the crabmail library has worked but its not entirely fully tested, mainly because we didn't check with Sonic Search. But iroh sync, and crabmail did work.
-
The
/home
route is the main route, it shows a screen of 50 (20? you can tweak this number on the frontend's api_service.dart file) list tiles email threads, it shows a sidebar that can be hidden in which you can select the different email mailboxes/folders there's in your account -
The
/contacts
route is a screen where all your contacts should be in list tiles (not implemented yet). -
The
"/email/:subject/:target/:viewspecs/:emailID"
route, is a route that makes possible the email viewing when an link is created in the email view, where you define:- subject is the name of the email thread
- target is the section of the email and its brother nodes that are shown
- viewspecs is the augment commands to apply to the view, whether to add numbering on the left or right side or some others, (not implemented for this route)
- emailID is a unique ID that directs to the email, this is autofilled so the user doesn't have to know