Merbin J Anselm
Web source
Login.js
AppBar.js
App.js
Login.js
main.go#main()
models_gen.go
resolver.go
store.js
). The main application is available at root /
, which on load tries to load the noteitems./login
where the user can enter email
& password
to login. To register for a new user, the user clicks on the 'Register' link to navigate to /register
route. The user may enter any name
, email
(no email verification in place) and password
. All Login & Registration HTTP calls are REST and are made via Axios React Hooks API./query
and URQL client loads all the Notes, Labels & User information, in a single query (However, has to be optimised, as URQL's caching mechanism, makes involuntary calls, whenever any of the mutation happens). UI displays the items. User may create, update, delete note items, and may also create & assign/unassign labels to note items. The labels may be added, but update/delete hasn't be implemented now. User can sign out, by clicking the 'Profile' icon and then 'Sign Out' button./
- handles UI resources/query
- handles GraphQL requests and will be delegated to gqlgen generated GraphQL handlers. Throws NotAuthenticated
error, if user is unauthenticated. Also, understands user information, via session cookie./auth
- handles all authentication related requests and will be delegated to AuthBoss framework. The /auth/register
, /auth/login
& /auth/logout
routes handle Registration, Login & Logout respectively.file
based API. GORM allows quick and easy Database modelling. The database tables are generated as per the modelling defined as Go Structs (see models_gen.go). The database modelling is done as per this ER Diagramresolver.go
) helps in resolving Notes related data from database. While AuthBoss's resolvers (see storer.go
) help in resolving user related information.