Giter VIP home page Giter VIP logo

jagankaartik / foodle Goto Github PK

View Code? Open in Web Editor NEW
4.0 4.0 0.0 12.25 MB

Foodle is a SPA built on the MERN stack, a CRUD application dealing with Dishes. Server built using Typescript. Features API Validation, OAuth (Twitter/Google), Containerized (Docker) Deployment. Client built using React, Redux, TailwindCSS, Atlaskit and Semantic UI.

Home Page: https://foodle-client.vercel.app/

License: MIT License

TypeScript 11.61% Dockerfile 0.59% HTML 3.22% JavaScript 76.25% CSS 8.03% Makefile 0.30%
aws crud docker docker-compose express jwt mern-stack mongodb oauth passportjs react redux tailwindcss typescript

foodle's Introduction

I'm active on the below platforms

                             

foodle's People

Contributors

dependabot[bot] avatar imgbot[bot] avatar jagankaartik avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

foodle's Issues

Testing - API

To-Do

  • Unit Testing of API
  • Integration Testing of API

Testing & JEST Setup

To Do

  • Routes
    • API Routes Auth
    • Auth Routes
    • Session Tests
  • Redirects CLIENT URL
  • Add JEST (JEST Based Testing)

Optimisation Opportunities

1. Change dotenv to env.js files

- Benefits : Selective Imports -> Less Memory -> Increased Efficieny
- Update Docker configs.

2. Resolve unwanted Imports/Dependencies

3. Use UGLIFY.js on the build dir.

Typescript Project Init

Requirements

Configure the below,

  • Typescript Init

  • Lint via Eslint

    • Airbnb Style Guide and other configs
    • Prettier as a plugin with Eslint
    • Pre-Commit Hook via Husky and Lint-Staged
  • Pref via any Typescript Express Docker Boilerplate

API Security

Need to validate APIs. To improve security.

Meh. Just random security principles.

DB Refactoring

  • Need to Refactor DB Connection Config.
  • Refactor Env
  • Add Seed File

Advanced Docker

Requirements

  • Add Docker Volumes.
  • Add a Docker Network internal for both services api-server and mongodb to communicate.
  • Replicas ?

NoSQL DB Setup

##To do

  • NoSQL DB (MongoDB) Setup
  • Add Schema
    • Dishes
  • Connect to dev:local mongo instance.
  • Create .env enviornments for dev, prod and test.
  • Test Mongo Connection
  • Mongo Seed File Creation

NGINX Setup

Setup NGINX server on port 80.

Reverse Proxy. Proxy layer setup.

Major Updates

Documentation

  • Postman Screen Shots.

Enhancements

  • Merge React Client into Server
  • Rename /api to /api/v1
    • Version 1: API REST
    • Version 2: API GraphQL (Try)
  • Increase Santizing: sanitize request data against xss and query injection.
  • Security: set security HTTP headers using helmet
  • Error handling: centralized error handling mechanism
  • Logging: using winston and morgan

UI/UX

  • Increase Responsiveness.
  • Optimize UI for Mobile/Tablet Devices
  • Dark Mode Toggle and Enhancement

Dockerize Application

##To Do

  • Create a Dockerfile for the main application.
  • Create a Docker Compose file.
  • Add and Configure Environment Variables.
  • Test Docker Container
  • Add a mongo instance to Docker. (Adv)

Fix [ERR_HTTP_HEADERS_SENT]

UnhandledPromiseRejectionWarning: Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client

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.