-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
b212f70
commit b12cc59
Showing
1 changed file
with
32 additions
and
14 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,27 +1,45 @@ | ||
# BreviPost | ||
**Hi, this is Gururaj's social media app, called Brevipost** | ||
|
||
This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 17.0.0. | ||
This app is built using the latest Angular 17 and the firebase. Below are the features used from the firestore: | ||
|
||
## Development server | ||
- Authorization | ||
- Firestore | ||
|
||
Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The application will automatically reload if you change any of the source files. | ||
The link for the hosted application: https://bervipost.firebaseapp.com | ||
|
||
## Code scaffolding | ||
Please create a new account either by entering the needed credentials or by Google. | ||
|
||
Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module`. | ||
Now, here is the breakdown of the application design and the decisions made by me. | ||
|
||
## Build | ||
Before going in: | ||
|
||
Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory. | ||
- I haven't implemented the UI of sign-in and register exactly as the "tweetx web"(the svg from the image is missing). | ||
- Put efforts to make the other parts of the app similar to the image references. | ||
- If you need a test credentials, you can use: | ||
- [email protected] | ||
- F0rever$ | ||
|
||
## Running unit tests | ||
The folder structure of the application: | ||
|
||
Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io). | ||
- app: contains the main components of the application. | ||
- assets: contain the font used (Poppins). | ||
- environment: contains the firebase configuration credentials. | ||
- partials: The contains the scss partial styles which contains the accent and button styling which are shared across the application. | ||
|
||
## Running end-to-end tests | ||
The app folder is the main folder housing all the application components, lets dive in: | ||
|
||
Run `ng e2e` to execute the end-to-end tests via a platform of your choice. To use this command, you need to first add a package that implements end-to-end testing capabilities. | ||
- feed: The entry point to the app after successful login, will see all the posts made by the users of the app. | ||
- profile: Holds the profile component of the logged in user, has 3 sub components called "profile-posts", "followers", "following" to show the posts from the follwed users, the logged in user's followers and following accounts respectively. | ||
- sign-in and sign-up: Has similar functionality, the sign in with google implemented for both. | ||
- users: Holds the users component, which displays all the registered users with their followers count. | ||
- routes: The routes are registered in the app.routes.ts as per the angular 17 standard, where the standalone component architecture is default instead of ngModule (app-routing.module.ts). | ||
- shared: This folder holds the shared components and services which will be detailed elaborately below. | ||
|
||
## Further help | ||
The shared folder holds the shared components and important services that enable this app to communicate to the firebase. | ||
|
||
To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page. | ||
- components: has the loader, main header, snackbar, the posts card and the user card components which are shared across the application. | ||
- services: | ||
- The auth service has the methods for signin with google, to authenticate the user has logged in or not and to retrieve the current user details. | ||
- firestore: the firestore has 2 services which has mainly related to posts, getting users and updated the follow counts. The second service was created later in development to increase maintainability of the application. | ||
- guard: this has a simple authorization guard for the routes to check the user has logged in to access the feed, users and profile pages. | ||
- types : golds the post and user types for the application. |