An open API service indexing awesome lists of open source software.

https://github.com/andrewsolonets/thechatapp

Full-stack real-time messaging app I've made to learn more about socket.io, node.js and API's.
https://github.com/andrewsolonets/thechatapp

chat-application messaging nextjs nodejs socket-io

Last synced: 3 months ago
JSON representation

Full-stack real-time messaging app I've made to learn more about socket.io, node.js and API's.

Awesome Lists containing this project

README

          





Logo

The Chat App


Full-stack real-time messaging app I've made to learn more about socket.io, node.js and API's.


Table of Contents



  1. About The Project



  2. Getting Started


  3. Usage

  4. Roadmap

  5. Contributing

  6. License

  7. Contact

  8. Acknowledgments

## About The Project

[![Product Name Screen Shot][product-screenshot]](https://thechatapp.vercel.app/)

## [See the working demo](https://thechatapp.vercel.app/)

A simple chat app that persists current users via cookies, saves message history in MongoDB. I've built this app to learn more about the backend - specifically node.js, express, and socket.io. I was amazed by the power of sockets, which led me to building this project. Server has an API that handles user authentication as well as message receiving, creating and storing functionality. MongoDb is used as a database.

(back to top)

### Built With

- [![Next][next.js]][next-url]
- [![React][react.js]][react-url]

(back to top)

## Getting Started

To get a local copy up and running follow these simple example steps.

### Prerequisites

## Getting Started

### Client side:

First, create .env file with
`NEXT_PUBLIC_HOST=http://localhost:3001`

Second, install dependencies:
`npm install`

Third, run the development server:

```bash

npm run dev

# or

yarn dev

```

Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.

### Server side:

1. Install dependencies:
`npm install`
2. Create .env file with:
`PORT=3001, TOKEN_KEY(jwt secret) TOKEN_EXPIRES_IN ORIGIN='http://localhost:3000'(client url) MONGO_URL(mongo connection url) `
3. `npm start`

## Usage

(back to top)

## Roadmap

- [x] Socket.io integration
- [x] DB users and messages persistence
- [x] Cookies for user log-in

(back to top)

## Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are **greatly appreciated**.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement".
Don't forget to give the project a star! Thanks again!

1. Fork the Project
2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)
3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`)
4. Push to the Branch (`git push origin feature/AmazingFeature`)
5. Open a Pull Request

(back to top)

## Contact

Project Link: [https://github.com/andrewsolonets/TheChatApp](https://github.com/andrewsolonets/TheChatApp)

(back to top)

[contributors-shield]: https://img.shields.io/github/contributors/github_username/TheChatApp.svg?style=for-the-badge
[contributors-url]: https://github.com/github_username/repo_name/graphs/contributors
[forks-shield]: https://img.shields.io/github/forks/github_username/repo_name.svg?style=for-the-badge
[forks-url]: https://github.com/github_username/repo_name/network/members
[stars-shield]: https://img.shields.io/github/stars/github_username/repo_name.svg?style=for-the-badge
[stars-url]: https://github.com/github_username/repo_name/stargazers
[issues-shield]: https://img.shields.io/github/issues/github_username/repo_name.svg?style=for-the-badge
[issues-url]: https://github.com/github_username/repo_name/issues
[license-shield]: https://img.shields.io/github/license/github_username/repo_name.svg?style=for-the-badge
[license-url]: https://github.com/github_username/repo_name/blob/master/LICENSE.txt
[linkedin-shield]: https://img.shields.io/badge/-LinkedIn-black.svg?style=for-the-badge&logo=linkedin&colorB=555
[linkedin-url]: https://linkedin.com/in/linkedin_username
[product-screenshot]: Readme/mainpage.png
[next.js]: https://img.shields.io/badge/next.js-000000?style=for-the-badge&logo=nextdotjs&logoColor=white
[next-url]: https://nextjs.org/
[react.js]: https://img.shields.io/badge/React-20232A?style=for-the-badge&logo=react&logoColor=61DAFB
[react-url]: https://reactjs.org/
[vue.js]: https://img.shields.io/badge/Vue.js-35495E?style=for-the-badge&logo=vuedotjs&logoColor=4FC08D
[vue-url]: https://vuejs.org/
[angular.io]: https://img.shields.io/badge/Angular-DD0031?style=for-the-badge&logo=angular&logoColor=white
[angular-url]: https://angular.io/
[svelte.dev]: https://img.shields.io/badge/Svelte-4A4A55?style=for-the-badge&logo=svelte&logoColor=FF3E00
[svelte-url]: https://svelte.dev/
[laravel.com]: https://img.shields.io/badge/Laravel-FF2D20?style=for-the-badge&logo=laravel&logoColor=white
[laravel-url]: https://laravel.com
[bootstrap.com]: https://img.shields.io/badge/Bootstrap-563D7C?style=for-the-badge&logo=bootstrap&logoColor=white
[bootstrap-url]: https://getbootstrap.com
[jquery.com]: https://img.shields.io/badge/jQuery-0769AD?style=for-the-badge&logo=jquery&logoColor=white
[jquery-url]: https://jquery.com