- Overview
- Stack
- Getting Started
- Dev Setup
- Dev Setup and Running the app with Docker
- Deployment
- Team
- Acknowledgements
Under the Wing - Virtual Mentorship. A web platform that helps college students find working professional mentors.
- A virtual mentoring platform that pairs college students & working professionals with highschool seniors who have similar career interests in a Mentor-Mentee relationship. The platform will support and facilitate the mentoring relationship by providing pathways for both mentors and mentees to follow. Moreover, unlike other professional networking platforms, Under the Wing guarantees that mentees get matched with a mentor and vice versa. In short, Under the Wing will provide an opportunity for Mentees to develop their professional network and skills while also providing mentors with a pipeline to talent and an opportunity to give back.
- express.js
- sequelize.js
- Built using
create-react-app
and configured to work with the api. - Bootstrap 4.x added to
/client/public/index.html
- React Router
. │ .dockerignore │ .env.example │ .gitignore │ docker-compose.yaml │ package-lock.json │ package.json │ README.md │ ├───api │ │ .dockerignore │ │ app.js │ │ Dockerfile │ │ │ ├───config │ │ config.json │ │ │ ├───controllers │ │ │ appConfig.js │ │ │ auth.js │ │ │ index.js │ │ │ │ │ ├───accounts │ │ │ accounts.js │ │ │ queries.js │ │ │ │ │ ├───mentees │ │ │ mentees.js │ │ │ queries.js │ │ │ │ │ ├───mentors │ │ │ mentors.js │ │ │ queries.js │ │ │ │ │ └───pathways │ │ │ pathways.js │ │ │ queries.js │ │ │ │ │ ├───commit │ │ │ controller.js │ │ │ queries.js │ │ │ │ │ ├───creation │ │ │ controller.js │ │ │ queries.js │ │ │ │ │ ├───progress │ │ │ controller.js │ │ │ queries.js │ │ │ │ │ └───update │ │ controller.js │ │ queries.js │ │ │ ├───middlewares │ │ authentication.js │ │ │ ├───migrations │ └───models │ account.js │ activePathway.js │ activePathwayTask.js │ index.js │ login.js │ mentee.js │ mentor.js │ pathway.js │ pathwayCategory.js │ pathwayTask.js │ taskCategory.js │ ├───client │ │ .dockerignore │ │ .gitignore │ │ Dockerfile │ │ package-lock.json │ │ package.json │ │ README.md │ │ │ ├───public │ │ favicon.ico │ │ index.html │ │ logo192.png │ │ logo512.png │ │ manifest.json │ │ robots.txt │ │ │ └───src │ │ App.css │ │ App.js │ │ App.test.js │ │ index.css │ │ index.js │ │ logo.svg │ │ serviceWorker.js │ │ setupProxy.js │ │ │ ├───components │ │ Loading.js │ │ Post.js │ │ │ ├───pages │ │ AboutUsPage.js │ │ PostFormPage.js │ │ PostsListPage.js │ │ ShowPostPage.js │ │ │ └───views │ └───Accounts │ LoginPage.js │ RegisterPage.js │ └───docs │ api.md │ design.md │ ├───api │ accounts.md │ auth.md │ mentee.md │ mentors.md │ pathways.md │ └───design ├───draw.io-src-files │ ├───models │ │ schema.drawio │ │ │ └───views │ account-view.drawio │ login-view.drawio │ scheduling-view.drawio │ ├───models │ schema.png │ └───wireframes └───views account-view.png login-view.png pathways-view.png scheduling-view.png
Each team member will need to do this on their local machine.
Create a user in postgres named ctp_user
with the password ctp_pass
:
This only needs to be done one time on your machine You can create additional users if you want to.
createuser -P -s -e ctp_user
Create a separate db for this project:
createdb -h localhost -U ctp_user app2019_development
You will create a DB for each project you start based on this repo. For other projects change
app2019_development
to the new apps database name.
For more details see this installing postgres guide
For local development you will need two terminals open, one for the api-backend and another for the react-client.
Clone this app, then:
# api-backend terminal 1
cp .env.example .env
npm install
npm run dev
# react-client terminal 2
cd client
npm install
npm start
- api-backend will launch at: http://localhost:8080
- react-client will launch at: http://localhost:3000
In production you will only deploy a single app. The react client will build into static files that will be served from the backend.
# From project root.
docker-compose build && docker-compose up
Install the heroku cli if you don't already have it.
You will also need a heroku account And this will only be done once on your machine
# on mac
brew install heroku/brew/heroku
heroku login
Next, cd
into this project directory and create a project:
heroku create cool-appname
heroku addons:create heroku-postgresql:hobby-dev
This will deploy your apps to https://cool-appname.herokuapp.com, assuming that it is not taken already. You only need to do this once per app
Whenever you want to update the app run this command.
git push heroku master
This command deploys your master branch. You can change that and deploy a different branch such as:
git push heroku development