Giter Site home page Giter Site logo

messenger-express's People

Contributors

yousifhmada avatar

Watchers

 avatar  avatar

messenger-express's Issues

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 photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.