Skip to content

Wall App is an application that allows users to register, login, and post on the wall.

License

Notifications You must be signed in to change notification settings

junioresc/wallapp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

63 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Wall App

License

Table of Contents

Description

Wall App is an application that allows users to register, login, and post on the wall. The front-end of the app was made using React, React-Bootstrap, Framer Motion to add some transitions to page changes, and Apollo-Client to request and cache data. The back-end server was set up with Apollo-Server-Express and uses Mongoose in order to communicate with the MongoDB database. User passwords are encrypted using bcrypt and email is handled by Handlebars to generate the email HTML and Nodemailer to send over SMTP. The app also uses JSON Web Tokens to handle user authentication.

Wall App's Homepage

Usage

In the project directory, first install all the dependencies by typing npm i and then you can run:

npm start

Runs the app in the development mode.
Open http://localhost:3000 to view it in the browser.
Open http://localhost:3001/graphql to query the backend server in the browser.

The page will reload if you make edits on the backend or frontend.
You will also see any lint errors in the console.

npm run seed

This will seed data into the database to create users, posts, comments and also make the created users have friends.

Important:

This Application uses environment variables to store and protect the email SMTP settings. I'm using a seperate Gmail account to handle sending emails using a generated Application passsword. If you are testing the entire site flow locally, this step will fail unless you have your own Gmail credentials and set up a .env file inside the server directory with the following variables.

HOST=smtp.gmail.com
EMAIL_PORT=465
EMAIL_USER=(Your email)
EMAIL_PASS=(Your gmail generated application password)
SECRET=supersecretpassword

If that is too much, then I suggest to kindly use the deployed site at the link below as all functionality is working.

Website Link


You can checkout the live deployed site on: Wall-App-Social

Creating an account


Wall App Sign Up page

You can create an account by putting in a unique username, a valid email, and a password that is longer than 5 characters.
After submitting you will recieve an email from the site to confirm your email, please check your inbox or spam as you will not be able to sign in until you verify your email. The email will look like so once recieved:

Wall App Confirmation Email

After clicking the button you will be able to create your own posts for others to see and you will be able to add and remove friends.

Testing

Tests are available for the backend server, so go to the server directory with cd server from the project directory and then you can run:

npm test

Launches the Jest test runner.
Currently there is only tests verifying the database reads and writes information correctly using Mongoose. There is also tests for querying the Apollo server to see if the correct data is requested but they do not work anymore. When the tests were being produced, the excecutequery function was working and requesting the appropriate data but I've been unable to get it working again and they will fail because of a server timeout.

License

Licensed under the MIT License.

Questions

My GitHub
If you have any additional questions and would like to reach me, you can at junioresc1092@gmail.com

About

Wall App is an application that allows users to register, login, and post on the wall.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published