{"id":20294831,"url":"https://github.com/hackademymx/mern-kcal","last_synced_at":"2025-10-04T07:59:48.010Z","repository":{"id":39384161,"uuid":"208366000","full_name":"hackademymx/MERN-kcal","owner":"hackademymx","description":"App de calorias","archived":false,"fork":false,"pushed_at":"2023-07-18T22:46:08.000Z","size":1985,"stargazers_count":3,"open_issues_count":48,"forks_count":4,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-09-25T17:46:22.522Z","etag":null,"topics":["css-modules","expressjs","mern-stack","mongodb","mongoose","nodejs","react-router","reactjs","webpack"],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hackademymx.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-09-14T00:11:52.000Z","updated_at":"2021-08-30T17:07:42.000Z","dependencies_parsed_at":"2024-11-14T15:36:41.733Z","dependency_job_id":"8cee9883-9a64-456b-a410-171f8abef96b","html_url":"https://github.com/hackademymx/MERN-kcal","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/hackademymx/MERN-kcal","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hackademymx%2FMERN-kcal","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hackademymx%2FMERN-kcal/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hackademymx%2FMERN-kcal/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hackademymx%2FMERN-kcal/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hackademymx","download_url":"https://codeload.github.com/hackademymx/MERN-kcal/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hackademymx%2FMERN-kcal/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278283511,"owners_count":25961311,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-04T02:00:05.491Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["css-modules","expressjs","mern-stack","mongodb","mongoose","nodejs","react-router","reactjs","webpack"],"created_at":"2024-11-14T15:31:22.577Z","updated_at":"2025-10-04T07:59:47.992Z","avatar_url":"https://github.com/hackademymx.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Aplicación MERN Hackademy\n\n**Instalación**\n\n1. Clona el proyecto `git@github.com:oscaroceguera/MERN-kcal-private.git`\n2. Frontend:\n  * Accede al front en la carpeta `cliente`\n  * Instala dependecias del front con el comando `npm install` en la carpeta\n  * Correr nuestra App con el comando `npm start`\n3. Backend:\n  * Accede al back en la carpeta `server`\n  * instala dependecias con `npm install` en la carpeta server\n  * Correr nuestra API con el comando `npm start`\n\n\n**Requisitos:**\n\n* Conocimiento de Javascript intermedio\n* Conocimientos del controlador de versiones con GIT Usaremos la plataforma GitHub)\n* Tener instalado [GIT](https://git-scm.com)\n* Tener instalado [Nodejs](https://nodejs.org)\n* Tener instalado NPM\n* Tener instalado [MongoDB](https://docs.mongodb.com/manual/administration/install-community/)\n* Editor de código que desees\n\n**API (Backend)**:\n\n* [Nodejs](https://nodejs.org)\n* [Expressjs](https://expressjs.com/es)\n* [MongoDB](https://www.mongodb.com)\n\n**Client (Frontend):**\n\n* [React](https://es.reactjs.org/)\n* [Webpack](https://webpack.js.org/)\n* [React router](https://reacttraining.com/react-router/web/guides/quick-start)\n* [React loadable](https://github.com/jamiebuilds/react-loadable)\n* [CSS-modules](https://github.com/css-modules/css-modules)\n\n## Objetivo\n\nUtilizando la arquitectura **MERN** (Mongo, Express, React, Node), crear aplicación que guarde la cantidad de calorías consumidas por comida.\n\n\n* *[x] **00_INICIO:**\n    * *[x] Preparar ambiente para el API (nuestro primer endpoint):\n        * Instalar dependencias básicas para levantar un servicio con **Nodejs** usando **Expressjs**\n    * *[x] Preparar ambiente para el Cliente (hola mundo en reactjs)\n        * Instalar dependencias básicas para correr **Reactjs** usando **Webpack**\n\n* *[x] **01_ALTA_DE_COMIDA:**\n\t* *[x] **[BACK]** - Crear el modelo de tipo de comida:\n        * uuid: string\n        * value: string\n    * *[x] **[BACK]** - Crear controlador de alta de catalogo de tipo de comida\n    * *[x] **[BACK]** - Crear ruta de acceso a la alta de catalogo de tipo de comida (POST)\n    * *[x] **[BACK]** - Crear controlador de listado de catalogo de tipo de comida\n    * *[x] **[BACK]** - Crear ruta de acceso al listado de catalogo de tipo de comida (GET)\n    * *[x] **[BACK]** - Crear el modelo de tipo de alimento\n        * uuid: string\n        * label: string\n        * kcal: number\n        * type: String\n    * *[x] **[BACK]** - Crear controlador de alta de catalogo de tipo de alimento\n    * *[x] **[BACK]** - Crear ruta de acceso a la alta de catalogo de tipo de alimento (POST)\n    * *[x] **[BACK]** - Crear controlador de listado de catalogo de tipo de alimento \n    * *[x] **[BACK]** - Crear ruta de acceso al listado de catalogo de tipo de alimento (GET)\n    * *[x] **[BACK]** - Crear Modelo de comida:\n        * uuid: String\n        * meal: String\n        * date: date\n        * foods: referencia al catalogo de tipo de comida\n        * mealType: referencia al catalogo de tipo de alimento\n    * *[x] **[BACK]** - Crear controlador de alta de comida\n    * *[x] **[BACK]** - Crear ruta de acceso para alta de comida (POST)\n    * *[x] **[FRONT]** - Input de texto para introducir nombre de la comida (Pozole, Menudo, Ceviche, etc).\n    * *[x] **[FRONT]** - Dropdown que consultara al catalogo de tipo de comida (Desayuno, Comida, Colación, Cena).\n    * *[x] **[FRONT]** - Datepicker que registra la fecha de consumo.\n    * *[x] **[FRONT]** - Autocomplete de alimentos utilizados, el cual consultara al catalogo de alimentos (pollo, cebolla, tomates, etc):\n      * Autocomplete component: `https://gist.github.com/oscaroceguera/621a08f64e1b391059d5a0fc6bff1ccd`\n      * Autocomplete functions `https://gist.github.com/oscaroceguera/bdf5512e13b399e9b2042dad7078c791`\n    * *[x] **[FRONT]** - Guardar comida.\n    \n* *[x] **02_LISTADO_COMIDAS:**\n  * *[x] **[BACK]** - Crear controlador de listado de comidas\n  * *[x] **[BACK]** - Crear ruta de acceso de listado de comidas (GET)\n  * *[x] **[FRONT]** - Listado de comidas\n\n* *[x] **03_ACTUALIZAR_COMIDA:**\n  * *[x] **[BACK]** - Crear controlador para obtener el de detalle de comida\n  * *[x] **[BACK]** - Crear ruta de acceso para obtener el detalle de comida (GET)\n  * *[x] **[FRONT]** - Mostrar de detalle de comida\n  * *[x] **[BACK]** - Crear controlador para actualizar comida\n  * *[x] **[BACK]** - Crear ruta para acceder a actualizar comida (PATCH)\n  * *[x] **[FRONT]** - Actualizar comida\n\n* *[x] **04_ELIMINAR_COMIDA:**\n  * *[x] **[BACK]** - Crear controlador para elimiar comida\n  * *[x] **[BACK]** - Crear url para acceder a elimiar comida (DELETE)\n  * *[x] **[FRONT]** - Eliminar comida\n\n* *[x] **05_SUMA_DE_KCAL:**\n  * *[x] **[BACK]** - Crear controlador para obtener la suma de calorias **Por mes**\n  * *[x] **[BACK]** - Crear ruta para obtener la suma de calorias **Por mes** (GET)\n  * *[x] **[FRONT]** - Mostrar suma de calorias por mes\n  * *[x] **[BACK]** - Crear controlador para obtener la suma de calorias **Por mes**\n  * *[x] **[BACK]** - Crear ruta para obtener la suma de calorias **Por año** (GET)\n  * *[x] **[FRONT]** - Mostrar suma de calorias por año\n  * *[x] **[BACK]** - Crear controlador para obtener la suma de calorias **Por día**\n  * *[x] **[BACK]** - Crear ruta para obtener la suma de calorias **Por día** (GET)\n  * *[x] **[FRONT]** - Mostrar suma de calorias por día\n\n## Nice to have\n\n* *[x] **5.1_TDD_BACK_BONUS**\n  * *[x] **[BACK]** - TDD\n\n* *[ ] **5.2_TDD_FRONT_BONUS**\n  * *[ ] **[FRONT]** - TDD\n\n* *[ ] **5.3_E2E_FRONT_BONUS**\n  * *[ ] **[FRONT]** - E2E\n\n* *[ ] **06_SESION_USUARIOS**\n\n* *[ ] **07_DEPLOY_PRODUCCION:**\n  * *[ ] **[BACK]** - Heroku\n  * *[ ] **[BACK]** - AWS EC2\n  * *[ ] **[FRONT]** - Netlifly\n  * *[ ] **[FRONT]** - AWS S3\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhackademymx%2Fmern-kcal","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhackademymx%2Fmern-kcal","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhackademymx%2Fmern-kcal/lists"}