Skip to content

Wallpapr is a full stack image sharing app where users can share desktop wallpapers, leave reviews, and view other users' uploads and profiles.

Notifications You must be signed in to change notification settings

Kxvin1/wallpapr

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Wallpapr

Inspired by Flickr, Wallpapr is an image sharing single page app where users can share their favorite desktop wallpapers as well as view other users' uploads and profiles. Users can interact with other users by leaving comments on their profile.

Here are some key features:

  • Engineered with Redux to create a single page app to dynamically render React components without a refresh
  • Generated a Node.js backend using the Sequelize ORM to handle validations and PostgreSQL database queries
  • Used React to create a splash page setup similar to Flickr by incorporating element manipulation
  • Configured Bcrypt to hash user passwords and store them in the database to implement access control lists
  • Implemented a custom modal framework using React component architecture allowing for efficient development of new forms
  • Utilized AWS S3 to implement user image uploads to reduce server load allowing for scalability of the webapp's image sharing services

Links

Recommended resolution size for viewing: 1366 x 768 or higher

Technologies Used

Image Storage & Hosting

AWS Heroku

Backend

Express.js Sequelize Postgres

Frontend

React ReduxJavaScriptHTML5 CSS3

Getting started

  1. Clone this repository

    git clone git@github.com:Kxvin1/wallpapr.git

  2. Install dependencies in the backend directory

    npm install

  3. Install dependencies in the frontend directory

    npm install

  4. Create a .env file based on the .env.example given

  5. Create a User in PSQL based on your .env DB_USERNAME

    psql -c "CREATE USER <username> PASSWORD '<password>' CREATEDB"

  6. Create the database, migrate, and then seed

    npx dotenv sequelize db:create

    npx dotenv sequelize db:migrate

    npx dotenv sequelize db:seed:all

  7. Start a server in both the backend and frontend directories by running:

    npm start

About the Project & Features

Splash Page & User Authentication

  • The splash page shows when a user is not currently logged in.

Splash Page

  • Users can log into an existing account or sign up. Alternatively, users can test the site with the Demo Login feature.
  • The bar at the top with the logo, login and sign up buttons is the navigation bar of a user who is not signed in.

User Auth

User Home Page

Navigation

  • Once the user is logged in, the user's navigation bar changes and they can also view all images posted on the Discover page.

  • They will also gain access to an Uploads page, where they can view, edit, and delete images they've uploaded. And the other page is the Profile page (explained in User Profile section).

User Home

  • Clicking on an image will display a zoomed in modal of that image, with the image's tags and a clickable link to the profile of the user who uploaded the image.

Image Zoom

  • Clicking on the username shows the profile of the user (shown further below)

User Uploads

  • A user can post a new image by clicking the upload icon (arrow pointing up, next to the log out button) in the navigation bar. This action is doable anywhere on the site as long as the User is logged in.

User Uploads

  • New Image Modal

New Image Modal

  • Edit and delete buttons only show up on the Profile page and only on hover to achieve a clean look on the site.

Image Hover With Edit and Delete

  • Edit Tags Modal

Edit Tags Modal

  • Delete Image Modal

Delete Tags Modal

User Profile & Comments

  • Navigating to a User's page (or the User page through the 'Profile' tab) displays their profile card as well as comments left by other users, or the User themselves.

  • On this page, users can add a comment, as well as delete comment they've created. The delete button displays only for comments that belong to the logged in user and appears on hover to achieve the clean look of the app.

  • In addition, there is a link to that user's uploads below their avatar picture that leads to that profile's uploads. Below the link to their collections, the user's other profile information such as their username, location, and biography are shown.

User Profile

Search

  • There is a search bar at the top that can be used on any page.

Search Bar

  • Users can search for images by putting in a tag in the search bar and any image with that specific tag will show in the results.

Search Results

Page Not Found

  • Trying to access a path that does not exist or is not available because the user is not signed in will render a page not found component, and redirects the user to the home page automatically after 10 seconds.

  • They will also have the option to return to the home page by clicking the HERE text if they do not want to wait 10 seconds.

Page Not Found

About

Wallpapr is a full stack image sharing app where users can share desktop wallpapers, leave reviews, and view other users' uploads and profiles.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published