Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
f1e1843
added mui stylistics for client login
dexterch91 Jun 17, 2023
55559d5
added admin page,react router to app.js and dropzone
dexterch91 Jun 17, 2023
ab1a8bd
added admin page with features for password generation, imges file up…
dexterch91 Jun 17, 2023
dc8e8af
added snackbar mui
dexterch91 Jun 17, 2023
449d7e7
added firebase storage, ability to upload ImageObject database schema
dexterch91 Jun 17, 2023
fa7c909
resolved empty zip file issue
dexterch91 Jun 20, 2023
52710b9
added image card component, added chip mui and box clicking text input
dexterch91 Jun 26, 2023
04244a0
added working off picture clicking toggle off
dexterch91 Jun 29, 2023
d0e744e
added condition for null array
dexterch91 Jul 1, 2023
2fe2384
added chips into input
dexterch91 Jul 2, 2023
d1144b9
added filtering capabiltiies but errors still remain on resetting state
dexterch91 Jul 2, 2023
765489c
added working filtering code. some issue with the mui chips persists …
dexterch91 Jul 3, 2023
99d16a1
resolved overlappting tags on mui chips
dexterch91 Jul 3, 2023
95d3ea1
resolved bug on the chip tagging. resolved issue on the imageObjects …
dexterch91 Jul 4, 2023
e2b6ccb
Added login page
dexterch91 Jul 6, 2023
e72b2dc
Added google sign-in capabitilies
dexterch91 Jul 7, 2023
04b8f2c
added email and gmail logins
dexterch91 Jul 8, 2023
4556f6c
added password recovery via firebase
dexterch91 Jul 8, 2023
d80b308
added user email account filter
dexterch91 Jul 8, 2023
d7261a0
added unique array filter
dexterch91 Jul 8, 2023
32e45eb
resolved pushing into list issue with ...spreader
dexterch91 Jul 8, 2023
3dd0b7a
added uploading of files sequentially with final success message on s…
dexterch91 Jul 8, 2023
005a7bc
updated the icon logo
dexterch91 Jul 8, 2023
eb60c65
Update README.md
kaucers Jul 15, 2023
1b195d6
Update README.md
kaucers Jul 15, 2023
6e838e1
Added ADMIN USER email for upload
dexterch91 Jul 17, 2023
daf14a9
Added ADMIN USER
dexterch91 Jul 17, 2023
15944e5
Removed console.logs. Downsized images to 180
dexterch91 Jul 17, 2023
fd43114
Removed more console.logs
dexterch91 Jul 17, 2023
b211b57
Changed CI=false for railway deployment
dexterch91 Jul 17, 2023
c95de68
Recorrection of the CI build, to transfer to Railway App
dexterch91 Jul 17, 2023
d5bdea8
Removed trailing comma in .json
dexterch91 Jul 17, 2023
88ccb99
Cleaned up and organized for submission
dexterch91 Jul 22, 2023
66ca54d
Update README.md
dexterch91 Jul 23, 2023
5ac396d
Update README.md
dexterch91 Jul 23, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
90 changes: 81 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,87 @@
# Rocket Academy Coding Bootcamp: Project 2: Full-Stack App (Firebase)

https://bc.rocketacademy.co/2-full-stack/2.p-full-stack-app-firebase
# Pixfolio

## Available Scripts
An image gallery for photographers to upload pictures online and assign them to users. Users can login to review their images and assign tags for easy categorization and download.

This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app). In the project directory, you can run:
![Screenshot 2023-07-15 at 10-36-51 Pixfolio App](https://github.com/dexterch91/project2-bootcamp/assets/38061057/6ed84631-2c91-4307-8f79-ec7cde6eccc3)

### `npm start`
![Screenshot 2023-07-15 at 10-38-25 Pixfolio App](https://github.com/dexterch91/project2-bootcamp/assets/38061057/03d3ac42-ca78-4968-9cd1-01d1d396a7c0)

Runs the app in the development mode.\
Open [http://localhost:3000](http://localhost:3000) to view it in your browser.
![Screenshot 2023-07-15 at 10-35-05 Pixfolio App](https://github.com/dexterch91/project2-bootcamp/assets/38061057/4ce71dcc-073d-4066-a029-ef7a802982cd)

The page will reload when you make changes.\
You may also see any lint errors in the console.
## Demo Video
![WebApp__Pixfolio_ReactFirebaseOAuthGoogleAuth (1)](https://github.com/dexterch91/project2-bootcamp/assets/62207671/176ac24e-ebb8-44f1-9054-7f79b1e9ac22)

# Features

Upload screen which allows the admin to upload multiples images and tag it to users.

Image gallery screen which allows the user to:
* Tag image with categories
* Filter images
* Download the images in zip file format

# Tech Used
Front end: [React](https://react.dev)

Routing: [React Router](https://reactrouter.com/en/main)

UI: [MUI](https://mui.com)

Storage/Database/Auth: [Firebase](https://firebase.google.com/docs)

File Upload: [Dropzone](https://www.dropzone.dev)

File Download: [file-saver](https://www.npmjs.com/package/file-saver), [jszip](https://stuk.github.io/jszip)

# Installation
This project was bootstrapped with Create React App. In the project directory, run the following steps:

1. Clone repo to local
2. Configure .env file and insert the API keys
```
REACT_APP_API_KEY = <API key>
REACT_APP_AUTH_DOMAIN = <API key>
REACT_APP_DATABASE_URL = <API key>
REACT_APP_PROJECT_ID = <API key>
REACT_APP_STORAGE_BUCKET = <API key>
REACT_APP_MESSAGING_SENDER_ID = <API key>
REACT_APP_APP_ID = <API key>
REACT_APP_MEASUREMENT_ID = <API key>
```

3. Install the dependencies



```
npm install react
npm install react-router-dom
npm install react-dropzone
npm install jszip
npm install file-saver
npm install @mui/material @emotion/react @emotion/styled
npm install firebase

```
# Run the app in dev mode:
Open the terminal and render the app:
```bash
npm start
```

To view it in the browser: http://localhost:3000

# Usage:
## Admin
1. Upload images and tag to the user (jpg or png format only).
2. Generate unique password for the user

## User
1. Once admin has uploaded the images, user can sign up with the unique password
2. User can login and see the images tagged to him
3. To categorize the image, double click on the image and enter the keywords
4. To remove the category, click 'X' on the image tooltip.
5. User may search all images to find images which fall under the respective categories. More than one category can be searched in one line, i.e. the search term 'sun mountain' will display images with 'sun' and/or 'mountain' tags.
6. User may download the images, which will be in stored in zip format.
7. User can logout once the process is completed.
Loading