Skip to content

Commit

Permalink
updated README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
Gururajj77 committed Jan 15, 2024
1 parent b212f70 commit b12cc59
Showing 1 changed file with 32 additions and 14 deletions.
46 changes: 32 additions & 14 deletions README.md
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.

0 comments on commit b12cc59

Please sign in to comment.