Skip to content

JadenBalogh/cosc360-project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

logo

Postn is a discussion forum website. It allows registered users to participate in online discussions in a similar format to Reddit. Unregistered users will be allowed to view the discussions but will be unable to comment or create their own posts. Users can register, create discussions (image or text-based), and reply to posts/comments.

Links

The website is hosted at https://postn-dev.herokuapp.com/, check it out!
The site map can be found here. The project report can be found here. The criteria checklist can be found here.

Features Implemented

Non-User:

  • View all discussion posts.
  • Search for discussions.
  • Create an account.
  • Can navigate to any part of the website regardless of the current page.
  • Sort feed by activity.
  • Advanced styling.
  • Collapsible threads.
  • Resolve user problems.

User:

  • View all discussion posts.
  • Create their own posts (with images and text).
  • Comment on posts.
  • Reply to comments to create a thread.
  • Update their profile (username, email, password, profile picture).
  • Can navigate to any part of the website regardless of the current page.
  • Must maintain state between page navigation.
  • Search for discussions.
  • Simple login with email and password.
  • Password recovery if required.
  • Sort feed by activity.
  • Advanced styling.
  • Collapsible threads.
  • Resolve user problems.

Admin:

  • Search for a user by name, email, or post.
  • Enable/disable users.
  • Edit/remove posts and comments.

Tech/frameworks used

Front end:

  • React
  • Tailwind CSS
  • Headless UI
  • Heroicons

Back end:

  • Node.js
  • Express
  • Postgres
  • Sequelize

API

Account

GET

  • /accounts/profile - Authenticate the user and return their profile information

POST

  • /accounts/login - Login and authenticate the user with a JWT token
  • /accounts/signup - Create a new user and save their information to the database
  • /accounts/password-recovery - Find a user’s account information in the database and send them a password recovery email
  • /accounts/activate - Admin-only. Set the target user account as active
  • /accounts/deactivate - Admin-only. Set the target user account as inactive

PUT

  • /accounts/profile - Authenticate the user and update their profile information

Posts and Comments

GET

  • /feed/get-feed - Return all posts with optional filtering by search text and ordering by date
  • /feed/get-post - Retrieve a post by id from the database and return its data
  • /feed/comments - Return all comments for a given post id

POST

  • /feed/publish-post - Authenticate the user and create a new post
  • /feed/add-comment - Authenticate the user and create a new comment on the given post

PUT

  • /feed/edit-post - Authenticate the user and update the given post
  • /feed/edit-comment - Authenticate the user and update the given comment

DELETE

  • /feed/delete-post - Authenticate the user and delete the given post
  • /feed/delete-comment - Authenticate the user and delete the given comment

Tests

Front end:

run craco test to run the test.

Back end:

run npm test to run the test. There are 3 tests for major functionalities.

  1. Accounts and Authentication
  2. Posts
  3. Comments

How to Start?

Front end:

run craco start to launch the front end

Back end:

run nodemon server.js to launch the server

Credits

Mathew de Vin

Jaden Balogh

Keyvan Khademi

Carson Ricca

✨ Thanks for reading ✨

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages