This project was generated with Angular CLI version 13.3.0.
- User can create an account
- User can login or logout
- User can upload photos
- User can delete their photos
- User can view their uploaded photos
- User can sort their photos by date and size.
- User can filter their photos by size aka largest or smallest.
- Alert messages are displayed when a user performs an action for e.g uploading or deleting a photo.
-
Built using Angular 13.3.0
-
Has a single model in the models folder, which has PhotoItem and User interfaces.
-
Has three modules in the modules folder, which are login, home, and shared.
-
Login module has the login component and the loging routing module.
-
Home module has the home component and the home routing module.
-
Shared module has the photo and alert components which are shared across the app.
-
-
Has a services folder, which has the global, auth, storage, guard services.
-
Global service has the setShowAlert subject, which is used to show the alert message.
-
Auth service has the signup, login, logout, and setUsers methods as key features.
-
Storage service has the saveImage, setStorage, getSavedPhotos and deletePhoto methods as key features.
-
There are 2 key guards, which are the auth guard and the login guard.
-
The auth guard is used to protect the home route, and the login guard is used to redirect the user to the home route if they are already logged in.
-
-
State management using RxJS and Ngrx. State management is done in the state folder, which has the actions, reducers, and selectors.
-
Tests using jest and jest-preset-angular.
-
The App Preview is hosted on Firebase. Click here to view the app.
-
GitHub Actions to build and deploy the app to Firebase on every push to the main branch.
-
To view setup instructions, please view the SETUP.md file.
Cheers!