From b12cc59e50c9be61d96024d975e7f135f740217e Mon Sep 17 00:00:00 2001 From: Gururajj77 Date: Mon, 15 Jan 2024 13:25:41 +0530 Subject: [PATCH] updated README.md --- README.md | 46 ++++++++++++++++++++++++++++++++-------------- 1 file changed, 32 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index 4e3369b..55da1eb 100644 --- a/README.md +++ b/README.md @@ -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: + - ikshwaku@yahoo.in + - 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.