{"id":19845731,"url":"https://github.com/jesussantana/tradexc","last_synced_at":"2026-04-14T10:32:17.634Z","repository":{"id":113637785,"uuid":"296805412","full_name":"jesussantana/Tradexc","owner":"jesussantana","description":"Global Digital Coin Trade \u0026 Exchange","archived":false,"fork":false,"pushed_at":"2021-03-31T08:36:26.000Z","size":2385,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-10T08:40:34.169Z","etag":null,"topics":["cryptocurrency","currency","development","express-js","finance","fullstack-javascript","handlebars","mern-stack","mongodb","nodejs","stock-market","webapp"],"latest_commit_sha":null,"homepage":"","language":"Handlebars","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/jesussantana.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":"2020-09-19T06:55:47.000Z","updated_at":"2021-08-03T07:21:16.000Z","dependencies_parsed_at":null,"dependency_job_id":"ac187a41-12b1-4aa7-8666-f6b9a6e77418","html_url":"https://github.com/jesussantana/Tradexc","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jesussantana/Tradexc","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jesussantana%2FTradexc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jesussantana%2FTradexc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jesussantana%2FTradexc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jesussantana%2FTradexc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jesussantana","download_url":"https://codeload.github.com/jesussantana/Tradexc/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jesussantana%2FTradexc/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31793212,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-14T02:24:21.117Z","status":"ssl_error","status_checked_at":"2026-04-14T02:24:20.627Z","response_time":153,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["cryptocurrency","currency","development","express-js","finance","fullstack-javascript","handlebars","mern-stack","mongodb","nodejs","stock-market","webapp"],"created_at":"2024-11-12T13:09:04.006Z","updated_at":"2026-04-14T10:32:17.616Z","avatar_url":"https://github.com/jesussantana.png","language":"Handlebars","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TradExc App\n\nIronhack project at end of module 2 of Barcelona Full Stack Web Development Part Time March 2020\n\n# Developers:\n\n- [Chus Santana](https://github.com/jesussantana/)\n- [Marc De Mena](https://github.com/mdemena/)\n\n# Link to App:\n\n## Description\n\nAn app for improve your money gaming with a Global Digital Coin Exchange.\n\n## Epics / User Stories\n\n- Website\n\n  - **homepage** - As a user I want to be able to access the homepage so that I see what the app is about and login and signup\n  - **about** - As a user I want to be know who are rear this project and know how to contact if I have a problem\n  - **404** - As a user I want to see a nice 404 page when I go to a page that doesn’t exist so that I know it was my fault\n  - **500** - As a user I want to see a nice error page when the super team screws it up so that I know that is not my fault\n\n- Authentication\n\n  - **signup** - As a user I want to sign up on the application so that I can trade with my money\n  - **login** - As a user I want to be able to log in on the application so that I can get back to my account\n  - **logout** - As a user I want to be able to log out from the application so that I can make sure no one will access my account\n\n- Applicaction\n\n  - **dashboard** - As a logged user I want to trade whit global exchange markets like NASDAQ, IBEX35 or CryptoMoney\n  - **trade** - As a user I want trade with investments, buy or selling in the market.\n  - **wallet** - As a user I want to work and know all the information of my money and my investments.\n\n- Reports\n\n  - **markets** - As a user I want to see all information in trade and cryptocurrency markets.\n  - **transactions** - As a user I want to see all the transaction I made.\n\n- Utilities\n\n  - **profile** - As a user I want to see and update all information refered to me.\n  - **support** - As a user I want te see and crete suppor tickets.\n  - **log** - As a user I want to see all my activity in application.\n\n## Backlog\n\nList of other features outside of the MVPs scope\n\nREAL Transactions\n\n## ROUTES:\n\n| Method | URL         | Description                                              |\n| ------ | ----------- | -------------------------------------------------------- |\n| GET    | /           | Renders index                                            |\n| GET    | /about      | Renders about                                            |\n| GET    | /auth/login | Redirects to /app/ if user logged in. Renders auth/login |\n| POST   | /auth/login | Redirects to /app/ if user logged in.                    |\n\n```\nbody:\n    - username\n    - password\n```\n\n| Method | URL          | Description                                               |\n| ------ | ------------ | --------------------------------------------------------- |\n| POST   | /auth/logout | Reditect to /                                             |\n| GET    | /auth/signup | Redirects to /app/ if user logged in. Renders auth/signup |\n| POST   | /auth/signup | Redirects to /app/ if user logged in. Redirect auth/login |\n\n```\nbody:\n    - name\n    - email\n    - password\n```\n\n| Method | URL         | Description                                                        |\n| ------ | ----------- | ------------------------------------------------------------------ |\n| GET    | /app/       | Redirects to /auth/login/ if user not logged in. Renders dashboard |\n| GET    | /app/wallet | Redirects to /auth/login/ if user not logged in. Renders wallet    |\n| GET    | /app/wallet | Redirects to /auth/login/ if user not logged in. Renders wallet    |\n\n| Method | URL                                | Description                                                               |\n| ------ | ---------------------------------- | ------------------------------------------------------------------------- |\n| GET    | /app/trade                         | Redirects to /auth/login/ if user not logged in. Renders app/trade/index  |\n| GET    | /app/trade/buy                     | Redirects to /auth/login/ if user not logged in. Renders app/trade/trade  |\n| GET    | /app/trade/buy/:type/:symbol-:name | Redirects to /auth/login/ if user not logged in. Renders app/trade/trade  |\n| POST   | /app/trade/buy                     | Redirects to /auth/login/ if user not logged in. Redirect app/trade/index |\n\n```\nbody:\n    - symbolCode\n    - symbolName\n    - type\n    - units\n    - price\n```\n\n| Method | URL                                        | Description                                                               |\n| ------ | ------------------------------------------ | ------------------------------------------------------------------------- |\n| GET    | /app/trade/sell/:type/:units/:symbol-:name | Redirects to /auth/login/ if user not logged in. Renders app/trade/trade  |\n| POST   | /app/trade/sell                            | Redirects to /auth/login/ if user not logged in. Redirect app/trade/index |\n\n```\nbody:\n    - symbolCode\n    - symbolName\n    - type\n    - units\n    - price\n```\n\n| Method | URL       | Description                                                              |\n| ------ | --------- | ------------------------------------------------------------------------ |\n| GET    | /app/user | Redirects to /auth/login/ if user not logged in. Renders app/user/index  |\n| POST   | /app/user | Redirects to /auth/login/ if user not logged in. Redirect app/user/index |\n\n```\nbody:\n    - name\n    - email\n    - password\n    - imgPath\n    - imgName\n    - occupation\n    - adress\n    - city\n    - country\n    - postalCode\n    - about\n```\n\n| Method | URL                 | Description                                                                 |\n| ------ | ------------------- | --------------------------------------------------------------------------- |\n| GET    | /app/transactions   | Redirects to /auth/login/ if user not logged in. Renders app/transactions   |\n| GET    | /app/markets        | Redirects to /auth/login/ if user not logged in. Renders app/markets        |\n| GET    | /app/support        | Redirects to /auth/login/ if user not logged in. Renders app/support/list   |\n| GET    | /app/support/ticket | Redirects to /auth/login/ if user not logged in. Renders app/support/ticket |\n| POST   | /app/support/ticket | Redirects to /auth/login/ if user not logged in. Redirect app/support       |\n\n```\nbody:\n    - name\n    - email\n    - subject\n    - message\n```\n\n## Models\n\n```\nUser model\n{\n  name: { type: String, required: true },\n  email: { type: String, required: true, unique: true },\n  passwordHash: { type: String, required: true },\n  imgPath: { type: String },\n  imgName: { type: String },\n  occupation: { type: String },\n  adress: { type: String },\n  city: { type: String },\n  country: { type: String },\n  postalCode: { type: String },\n  about: { type: String },\n}\n```\n\n```\nWallet model\n{\n  user: { type: mongoose.SchemaTypes.ObjectId, ref: 'User', required: true },\n  amount: { type: Number, required: true },\n  movements: [\n    {\n      date: { type: Date, required: true },\n      type: {\n        type: String,\n        enum: ['deposit', 'widthdraw', 'buy', 'sell'],\n        required: true,\n      },\n      amount: { type: Number, required: true },\n    },\n  ],\n}\n```\n\n```\nStock model\n{\n  user: { type: mongoose.SchemaTypes.ObjectId, ref: 'User', required: true },\n  symbol: { type: String, required: true },\n  name: { type: String, required: true },\n  type: { type: String, enum: ['stock', 'crypto'], required: true },\n  units: { type: Number, required: true },\n}\n```\n\n```\nTransaction model\n{\n  date: { type: Date, required: true },\n  user: { type: mongoose.SchemaTypes.ObjectId, ref: 'User', required: true },\n  stock: {\n    type: mongoose.SchemaTypes.ObjectId,\n    ref: 'Stock',\n    required: true,\n  },\n  type: { type: String, enum: ['buy', 'sell'], required: true },\n  units: { type: Number, required: true },\n  price: { type: Number, required: true },\n}\n```\n\n```\nSupport model\n{\n  user: { type: mongoose.SchemaTypes.ObjectId, ref: 'User', required: true },\n  name: { type: String, required: true },\n  email: { type: String, required: true },\n  subject: { type: String },\n  message: { type: String },\n  status: { type: String, required: true },\n}\n```\n\n```\nLog model\n{\n  date: { type: Date, required: true },\n  user: { type: mongoose.SchemaTypes.ObjectId, ref: 'User', required: true },\n  description: { type: String, required: true },\n}\n```\n\n## Links\n\n### GitHub Reapository\n\nThe url to your repository and to your deployed project\n\n- [Repository Link](https://github.com/mdemena/project-tradexc)\n- [Deploy Link](https://www.tradexc.net/)\n\n### Wireframe\n\n- [Wireframe Link](https://excalidraw.com/#json=6259784651112448,g2qMNaIjYwxs_xurY2bU1Q)\n\n### Agile Board\n\n- [Trello Link](https://trello.com/b/rCNCcPCD/tradexc)\n\n### Slides\n\nThe url to your presentation slides\n\n[Slides Link](https://docs.google.com/presentation/d/121Bs_Kb2vDh4nO5iUrQiOZEq4tYSb8JYKCiKXQcbfJI/edit?usp=sharing)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjesussantana%2Ftradexc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjesussantana%2Ftradexc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjesussantana%2Ftradexc/lists"}