The frontend part of a simple chat app with weather API. Check out the backend part here.
Chatter.demo.mov
![image](https://private-user-images.githubusercontent.com/60753755/266834109-1dc50961-9791-44a6-a781-b4ad3182e2a8.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjQ1NDU1NzgsIm5iZiI6MTcyNDU0NTI3OCwicGF0aCI6Ii82MDc1Mzc1NS8yNjY4MzQxMDktMWRjNTA5NjEtOTc5MS00NGE2LWE3ODEtYjRhZDMxODJlMmE4LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MjUlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODI1VDAwMjExOFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTI1ZTBmNzEyMWM4NDkyNWUwZTdjODJiYjg3MGI2MmUxZWRiMDk1YWNkZTc5NjI2YzhlZWVjNzhhZDA4Yzg0ZjEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.QPJquUlLA4dKWEpBw4jA9iKnmpFloUQxDgE3u6HOWSs)
- Run
npm -v
to make sure you havenpm
installed. Read more about npm. - Since this is the frontend app, before running it you first need to pull and run the backend app.
- For example, if the backend project is in the same directory as your frontend project, you can use this script to run the backend server (with DB) with
brew
on macOS:
- For example, if the backend project is in the same directory as your frontend project, you can use this script to run the backend server (with DB) with
cd .. && cd ChatterService && cd ChatterService && brew services start mongodb-community && dotnet run
or
npm run start-server
In the project directory, run:
-
npm install
to install dependencies. -
npm start
to run the app in the development mode.
Open http://localhost:3000 to view it in your browser.
The page will reload when you make changes.
You may also see any lint errors in the console.
Runs all tests in the project.
Runs the tests that match the provided test substring.
Builds the app for production to the build
folder.
Stops MongoDB (community edition, using brew
).
There are some things that I could have done better, have I had more time or put more thought into it. Below is the checklist of things I can improve.
- Implement auth (incl. admin functionality)
- Make user and room validation more robust
- Migrate to
pnpm
- Migrate to
nextjs