Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/uwancha/club-house
A private messaging application with user authentication and authorization functionality.
https://github.com/uwancha/club-house
bcryptjs express mongodb mongoose nodejs passportjs pug-template-engine
Last synced: about 5 hours ago
JSON representation
A private messaging application with user authentication and authorization functionality.
- Host: GitHub
- URL: https://github.com/uwancha/club-house
- Owner: Uwancha
- Created: 2023-12-26T23:04:52.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2024-01-23T18:13:04.000Z (10 months ago)
- Last Synced: 2024-01-23T19:31:07.845Z (10 months ago)
- Topics: bcryptjs, express, mongodb, mongoose, nodejs, passportjs, pug-template-engine
- Language: JavaScript
- Homepage: https://club-house.adaptable.app/
- Size: 186 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Club House
A private messaging application with user authentication and authorization functionality.
## Description
Club Housean app that enables registered users to create anonymous posts visible to all site visitors. While inside the clubhouse, members can see the author's identity, but outside, only the message is visible. Admin users have additional permissions to delete posts.
![home page image](./assets/image1.png)
![items page image](./assets/image2.png)
## Live Preview
You can find the app [here](https://club-house.adaptable.app/)
## Passcode
Here's the passcode(case sensetive): NOT A MEMBER## Tech Stack
- Node.js
- Express.js
- MongoDB / Mongoose
- Passport.js
- Bcrypt
- Pug (view engine)## Features
1. **Database Models:**
- User Model: Contains user information such as name, email (used as a username), password, and membership status.
- Message Model: Represents the posts created by users, including a title, timestamp, and text. The model also keeps track of the author of each message.2. **Project Structure:**
- Generated with Node.js and organized according to the models.
- User authentication implemented using Passport.js.
- User inputs sanitized, validated, and secured with bcrypt during sign-up.3. **Project Flow:**
- Sign-Up Form: Users can register using a form with sanitized and validated fields.
- Membership Status: Users must enter a secret passcode to obtain membership status.
- Login Form: Users can log in using Passport.js, revealing additional features.
- Create a New Message: Logged-in users can create new messages.
- Display Messages: All member messages displayed on the home page. Author and date visible only to club members.
- Admin Privileges: Users with admin status can delete messages.## Getting Started
To run the application locally:
1. Clone the repository.
2. Install dependencies using `npm install`.
3. Set up a MongoDB database and provide the connection URI in the .env file.
4. Run the application with `npm devstart`.
5. Access the application at `http://localhost:5000`.## Contributing
Contributions are welcome! Feel free to open issues or pull requests.
## License
This project is licensed under the [MIT License](LICENSE).
## Acknowledgments
Special thanks to The Odin Project for providing an excellent curriculum that guided the development of this Club House application.