Giter Site home page Giter Site logo

hatchways_solo's People

Contributors

siuwafong avatar

Watchers

 avatar

hatchways_solo's Issues

FS: Editing Profile + Profile Pictures

  • use dropzone or something like it to allow user to upload picture. multiform POST request
  • save to amazon s3 and get the uri
  • save uri to database
    react-dropzone
    multiform POST request to send file
    Amazon S3 file upload
    save the url

Finish invitation dialog

Completed invitation dialog. There is a popup that allows the user to invite a friend by typing the friend's email address. Form validation is used to check if a valid email is submitted.

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

Complete frontend skeleton

I've completed ticket #15 (frontend skeleton). I added some basic functionality (searching through friends list, typing messages, and viewing messages from different friends).

BE: Translation

  • When a message is sent and saved, translate it with respect to the number of users in that conversation . save these translations. at most each message should be translated to another language once.
  • For example, if user A (English) is in a convo with user B (French), then any message user A sends, must be translated to French. and vice versa
  • If user A (English) is in a convo with user B (French) and user C (Spanish) then a message user A sends must be translated to French and Spanish
  • Chat Component is getting: {<user_id> : {translated_text: “”, sender_id: 2, chat_id: 2, translations: {“english”: “”, “french”: “”}}}

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

BE FE IN: Set up Socket.io

Socket.io (websockets) are important for this application as we'll be using it for

  • conversation (chatting rooms)
  • the real time responses from players

To set up socket.io, we need a set up architecture both on FE and BE. To begin with, create a scratch messenger feature that allows users in the same Match to talk to one another

Sending Images

Since we already have uploading feature, we can store sent images into s3 and store that link as a image message type

FE: Invitation Dialog

  • Create the UI (Dialog Material UI) 
  • When a user invites a friend, enters email, generates a link to share 

Full Invitation Flow

Sending an invite to connect via email (sendgrid, 3rd party API)

Sending the invitation through sendgrid (just enter a personal email address in the top field and click Send). Alternatively the user can manually send an email invitation (Copy url button).
Open the email invitation (in gmail, etc) and click the signup link.
Should open up a new registration
Refer to mockup for more details

When an email is typed in and sent

An invitation is created
An email is sent
When a referral link is sent and another user visits that link

Detect if this is coming from a referral link
If yes, the moment the user creates an account, or if they are already logged in, if
invitation between those two users don’t exist yet, then create an invitation to
connect

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.