messenger-express's People
messenger-express's Issues
Front-end: Messaging Application
- Build and replicate the front-end of the application
- Make sure the messenger is responsive
Integration: Signup / Login Pages
- Connect the starting front end code to the back end authentication routes
- Solve any bugs that might be in the front end code
- Modify the authentication code on the front-end to match how you are doing authentication on the back-end (where you are storing the token)
Sockets: making messaging real-time
- Add socket support on the front-end and back-end so that the messages are real-time
- use this package socket.io for real-time notifications
- Setup socket server on the backend
- Setup client connection (should connect if the user is authed, add some layer of security would be best)
- If you are planning on doing online statuses, we also want an object to keep track of which users are currently connected - for simplicity, you can for now just use an in-memory variable (like a dictionary or object in the back-end - not recommended for scalability, but it works for this project)
Front-end: Signup / Login Pages (Refactor)
- Refactor the existing front end code for maintainability
- Improve styling to match the spec provided
- Clean up routing and how you check the authenticated user in the application so that only signed-in users can reach the chat page
- make these pages responsive by removing any side images on smaller screens
Back-end: Messaging Application
- Build the back-end for the messaging application
- You will need:
- a way to store conversations and messages
- an API call to get all conversations for a user
- an API call to get all messages for a conversation (ordered in a way that makes sense)
- an API to search for users to find them to talk to
Back-end: Signup/Login - Database and API routes
Set up a database for the project:
- Connect to a database technology on start of your application (please only select one technology, try to choose something that is a good fit for your project if possible, or something you are comfortable with using)
[Here are some resources on the technologies: - Postgres - use SQLAlchemy if you are using Flask/Python and use Sequelize if you are using Node.js/Express
- MongoDB - use Mongoose for Node.js or PyMongo + some object document mapper to make things organized]
- Create a very basic user model that will be needed for login / signup of the application
- Update the Readme of the application to include some instructions on how to run the application with the db locally
Create the API routes for signup and login:
- Create a Register route (POST)
- this will create a new user, return 201
- validation on the back-end - password should be atleast 6 characters, required fields (email, name)
- simple password validation (>6 chars)
- Create a Login route (POST)
- verify username and password
- return 4xx if things are incorrect
- User model, don't want to save password directly on the database (hash/salt before we save them)
- Add an auth middleware / decorator - we can easily create authenticated routes and get the user object
- We are looking for the HTTP only cookies authentication strategy
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. ๐๐๐
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.