- Introduction
- Workspaces
- Setting environment variables
- Scripts
- Recommended resources
- README of the different projects
Welcome to the Core Code 'Platform' repository. Before you can start the repository local, it is necessary to perform certain configurations for its use. In addition, we would like provide you with some resources to help you better understand each part of the process. We hope you can enjoy and learn a lot from this repository, whose main purpose is to provide a real work experience to our graduates in the development world.
Since version 7, npm has support for "workspace", which makes it much easier to development process. An example of this is unification when installing dependencies. Previously, if multiple project folders were used in a repository, you had to install the folder dependencies per project folder:
npm install
With this unification, it is only necessary to do the installation once in the main project, using one package.json file that unifies everything, without removing the individual package.json file from each project. this also applies to scripts.
En nuestros espacios de trabajo, tendremos 3 proyectos:
- api: general backend of the platform with different paths for each frontend:
- endpoint for each frontend with different functionalities and validation of permissions and roles.
- data centralization (DB).
- connection with the different APIs to use:
- Google Calendar (Google API).
- WhatsApp (Meta for Developers).
- Slack (Slack API).
- student-app: frontend for students of the platform. Among its main functions will be:
- sign Up and log In of new applicants.
- Information validation:
- Phone using WhatsApp verification code.
- GitHub authentication to get user and be able to invite to course repositories.
- LinkedIn.
- Centralized Teaching Dashboard:
- States of the current process.
- Attendance information and event schedules on Zoom and Google Calendar.
- Generalized information of the enrolled course.
- management-app: frontend for the administrative part. functions:
- Creation of new courses.
- System of roles and permissions for the different types of accounts.
- Dashboard for the administration of the different APIs and generated courses.
In each project, you need an .env file. Here we will leave records of the name of these variables for each project individually:
PORT=3500 PORT=4000- Variable necessary for all configurations of the api project more details of everything in its README
#Server configurations
SERVER_PORT=3001
SERVER_MODE=
SERVER_DEVELOPMENT_FIRST_NAME=
SERVER_DEVELOPMENT_LAST_NAME=
SERVER_DEVELOPMENT_COUNTRY=
SERVER_DEVELOPMENT_EMAIL=
SERVER_DEVELOPMENT_PASSWORD=
SERVER_DEVELOPMENT_PHONE=
SERVER_DEVELOPMENT_SLACK_ID=
#Database configurations
SERVER_DB_USER=
SERVER_DB_PASS=
SERVER_DB_HOST=
SERVER_DB_PORT=
SERVER_DB_NAME=
#Frontend configurations
CLIENT_STUDENT_URL=http://localhost:3500
CLIENT_MANAGEMENT_URL=http://localhost:4000
#jwt configurations
JWT_SECRET_KEY_STUDENT=
JWT_EXPIRES_STUDENT=
JWT_SECRET_KEY_MANAGEMENT=
JWT_EXPIRES_MANAGEMENT=
#nodemailer configurations
NODE_MAILER_HOST=
NODE_MAILER_PORT=
NODE_MAILER_USER=
NODE_MAILER_PASSWORD=
#slack configurations
SLACK_BOT_USER_OAUTH_TOKEN=
SLACK_APP_LEVEL_TOKEN=
SERVER_MODE_SLACK=
#google calendar configurations
GOOGLE_CLIENT_ID=
GOOGLE_SECRET_CLIENT=
GOOGLE_REFRESH_TOKEN= "start:api": "npm run start --workspace=api",
"dev:api": "npm run dev --workspace=api",
"start:student": "npm run start --workspace=student-app",
"build:student": "npm run build --workspace=student-app",
"start:management": "npm run start --workspace=management-app",
"build:management": "npm run build --workspace=management-app"Here workspaces
