Giter VIP home page Giter VIP logo

express-starter's Introduction

Express Starter

This starter repo will be used for building applications using React, Material-UI, React-Router, Node, & Express.js.

Getting started

The project is broken down into a client and server folder.

express-starter's People

Contributors

skassam21 avatar aeciorc avatar jdegroot2797 avatar dependabot[bot] avatar

Watchers

James Cloos avatar

express-starter's Issues

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

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)

Back-end: Signup / Login API Routes

  • 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
  • Try to use a decent authentication strategy something like using HTTP only cookies or localstorage

Front-end: Signup / Login Pages

  • create two front-end react routers (login and signup)
  • There is no landing page - redirect to signup
  • Signup page - name, email, password + confirm password
  • Ignore Forget password (we don't need that right now)
  • Front-end validation as well:

Stretch Goal: make this page responsive by remove any side images on smaller screens

Back-end: Setup Postgres / Mongo for 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)
  • 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

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

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.