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.
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.
- 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.
- 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.
- Search for a user by name, email, or post.
- Enable/disable users.
- Edit/remove posts and comments.
- React
- Tailwind CSS
- Headless UI
- Heroicons
- Node.js
- Express
- Postgres
- Sequelize
- /accounts/profile - Authenticate the user and return their profile information
- /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
- /accounts/profile - Authenticate the user and update their profile information
- /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
- /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
- /feed/edit-post - Authenticate the user and update the given post
- /feed/edit-comment - Authenticate the user and update the given comment
- /feed/delete-post - Authenticate the user and delete the given post
- /feed/delete-comment - Authenticate the user and delete the given comment
run craco test
to run the test.
run npm test
to run the test. There are 3 tests for major functionalities.
- Accounts and Authentication
- Posts
- Comments
run craco start
to launch the front end
run nodemon server.js
to launch the server
✨ Thanks for reading ✨