1Pad is short for 1Photo A Day. The app is designed provide a personal space where users can upload 1 photo a day, as the name suggests- a photo that highlights their day. The dashboard displays a calendar of the past 30 days along with their associated photos. In order to access the dashboard, the user must create and log onto their account. From the dashboard, the user can upload, edit, delete photos, write a brief description about the photo, and add hashtags to each entry. Once an image is selected, the user can use the auto tag generation feature to view and choose from suggested hashtags generated with Tensorflow.js and the COCO SSD objection detection model. In addition, the user can search photos by hashtag.
1Pad is optimized for mobile view.
- React.js
- Material-UI
- PostgreSQL
- Bcrypt
- @react-oauth/google
- Node.js
- Tensorflow.js
- Jest
- React testing library
- AWS S3
To get a local copy up and running follow these simple steps.
- Clone the repo
git clone https://github.com/1PhotoADay/1Pad
- Install NPM packages
npm install
- Create a
.env
file in the root directory and paste in the following
PG_URI='YOUR POSTGRESQL URL'
- In the Client/utils directory/config.js, enter your own S3 config object in the following format
const S3config = {
bucketName: '1pad',
region: 'YOUR AWS S3 REGION',
accessKeyId: 'YOUR ACCESS KEY ID',
secretAccessKey: 'YOUR SECRET ACCESS KEY',
s3Url: 'YOUR S3 URL',
};
export default S3config;
- In the terminal, run
npm run dev
and go to http://localhost:8080 to access the application