https://github.com/jesussantana/tradexc
Global Digital Coin Trade & Exchange
https://github.com/jesussantana/tradexc
cryptocurrency currency development express-js finance fullstack-javascript handlebars mern-stack mongodb nodejs stock-market webapp
Last synced: about 2 months ago
JSON representation
Global Digital Coin Trade & Exchange
- Host: GitHub
- URL: https://github.com/jesussantana/tradexc
- Owner: jesussantana
- Created: 2020-09-19T06:55:47.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2021-03-31T08:36:26.000Z (about 5 years ago)
- Last Synced: 2025-06-10T08:40:34.169Z (12 months ago)
- Topics: cryptocurrency, currency, development, express-js, finance, fullstack-javascript, handlebars, mern-stack, mongodb, nodejs, stock-market, webapp
- Language: Handlebars
- Homepage:
- Size: 2.27 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# TradExc App
Ironhack project at end of module 2 of Barcelona Full Stack Web Development Part Time March 2020
# Developers:
- [Chus Santana](https://github.com/jesussantana/)
- [Marc De Mena](https://github.com/mdemena/)
# Link to App:
## Description
An app for improve your money gaming with a Global Digital Coin Exchange.
## Epics / User Stories
- Website
- **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
- **about** - As a user I want to be know who are rear this project and know how to contact if I have a problem
- **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
- **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
- Authentication
- **signup** - As a user I want to sign up on the application so that I can trade with my money
- **login** - As a user I want to be able to log in on the application so that I can get back to my account
- **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
- Applicaction
- **dashboard** - As a logged user I want to trade whit global exchange markets like NASDAQ, IBEX35 or CryptoMoney
- **trade** - As a user I want trade with investments, buy or selling in the market.
- **wallet** - As a user I want to work and know all the information of my money and my investments.
- Reports
- **markets** - As a user I want to see all information in trade and cryptocurrency markets.
- **transactions** - As a user I want to see all the transaction I made.
- Utilities
- **profile** - As a user I want to see and update all information refered to me.
- **support** - As a user I want te see and crete suppor tickets.
- **log** - As a user I want to see all my activity in application.
## Backlog
List of other features outside of the MVPs scope
REAL Transactions
## ROUTES:
| Method | URL | Description |
| ------ | ----------- | -------------------------------------------------------- |
| GET | / | Renders index |
| GET | /about | Renders about |
| GET | /auth/login | Redirects to /app/ if user logged in. Renders auth/login |
| POST | /auth/login | Redirects to /app/ if user logged in. |
```
body:
- username
- password
```
| Method | URL | Description |
| ------ | ------------ | --------------------------------------------------------- |
| POST | /auth/logout | Reditect to / |
| GET | /auth/signup | Redirects to /app/ if user logged in. Renders auth/signup |
| POST | /auth/signup | Redirects to /app/ if user logged in. Redirect auth/login |
```
body:
- name
- email
- password
```
| Method | URL | Description |
| ------ | ----------- | ------------------------------------------------------------------ |
| GET | /app/ | Redirects to /auth/login/ if user not logged in. Renders dashboard |
| GET | /app/wallet | Redirects to /auth/login/ if user not logged in. Renders wallet |
| GET | /app/wallet | Redirects to /auth/login/ if user not logged in. Renders wallet |
| Method | URL | Description |
| ------ | ---------------------------------- | ------------------------------------------------------------------------- |
| GET | /app/trade | Redirects to /auth/login/ if user not logged in. Renders app/trade/index |
| GET | /app/trade/buy | Redirects to /auth/login/ if user not logged in. Renders app/trade/trade |
| GET | /app/trade/buy/:type/:symbol-:name | Redirects to /auth/login/ if user not logged in. Renders app/trade/trade |
| POST | /app/trade/buy | Redirects to /auth/login/ if user not logged in. Redirect app/trade/index |
```
body:
- symbolCode
- symbolName
- type
- units
- price
```
| Method | URL | Description |
| ------ | ------------------------------------------ | ------------------------------------------------------------------------- |
| GET | /app/trade/sell/:type/:units/:symbol-:name | Redirects to /auth/login/ if user not logged in. Renders app/trade/trade |
| POST | /app/trade/sell | Redirects to /auth/login/ if user not logged in. Redirect app/trade/index |
```
body:
- symbolCode
- symbolName
- type
- units
- price
```
| Method | URL | Description |
| ------ | --------- | ------------------------------------------------------------------------ |
| GET | /app/user | Redirects to /auth/login/ if user not logged in. Renders app/user/index |
| POST | /app/user | Redirects to /auth/login/ if user not logged in. Redirect app/user/index |
```
body:
- name
- email
- password
- imgPath
- imgName
- occupation
- adress
- city
- country
- postalCode
- about
```
| Method | URL | Description |
| ------ | ------------------- | --------------------------------------------------------------------------- |
| GET | /app/transactions | Redirects to /auth/login/ if user not logged in. Renders app/transactions |
| GET | /app/markets | Redirects to /auth/login/ if user not logged in. Renders app/markets |
| GET | /app/support | Redirects to /auth/login/ if user not logged in. Renders app/support/list |
| GET | /app/support/ticket | Redirects to /auth/login/ if user not logged in. Renders app/support/ticket |
| POST | /app/support/ticket | Redirects to /auth/login/ if user not logged in. Redirect app/support |
```
body:
- name
- email
- subject
- message
```
## Models
```
User model
{
name: { type: String, required: true },
email: { type: String, required: true, unique: true },
passwordHash: { type: String, required: true },
imgPath: { type: String },
imgName: { type: String },
occupation: { type: String },
adress: { type: String },
city: { type: String },
country: { type: String },
postalCode: { type: String },
about: { type: String },
}
```
```
Wallet model
{
user: { type: mongoose.SchemaTypes.ObjectId, ref: 'User', required: true },
amount: { type: Number, required: true },
movements: [
{
date: { type: Date, required: true },
type: {
type: String,
enum: ['deposit', 'widthdraw', 'buy', 'sell'],
required: true,
},
amount: { type: Number, required: true },
},
],
}
```
```
Stock model
{
user: { type: mongoose.SchemaTypes.ObjectId, ref: 'User', required: true },
symbol: { type: String, required: true },
name: { type: String, required: true },
type: { type: String, enum: ['stock', 'crypto'], required: true },
units: { type: Number, required: true },
}
```
```
Transaction model
{
date: { type: Date, required: true },
user: { type: mongoose.SchemaTypes.ObjectId, ref: 'User', required: true },
stock: {
type: mongoose.SchemaTypes.ObjectId,
ref: 'Stock',
required: true,
},
type: { type: String, enum: ['buy', 'sell'], required: true },
units: { type: Number, required: true },
price: { type: Number, required: true },
}
```
```
Support model
{
user: { type: mongoose.SchemaTypes.ObjectId, ref: 'User', required: true },
name: { type: String, required: true },
email: { type: String, required: true },
subject: { type: String },
message: { type: String },
status: { type: String, required: true },
}
```
```
Log model
{
date: { type: Date, required: true },
user: { type: mongoose.SchemaTypes.ObjectId, ref: 'User', required: true },
description: { type: String, required: true },
}
```
## Links
### GitHub Reapository
The url to your repository and to your deployed project
- [Repository Link](https://github.com/mdemena/project-tradexc)
- [Deploy Link](https://www.tradexc.net/)
### Wireframe
- [Wireframe Link](https://excalidraw.com/#json=6259784651112448,g2qMNaIjYwxs_xurY2bU1Q)
### Agile Board
- [Trello Link](https://trello.com/b/rCNCcPCD/tradexc)
### Slides
The url to your presentation slides
[Slides Link](https://docs.google.com/presentation/d/121Bs_Kb2vDh4nO5iUrQiOZEq4tYSb8JYKCiKXQcbfJI/edit?usp=sharing)