Skip to content

Latest commit

 

History

History
179 lines (138 loc) · 6.56 KB

README.md

File metadata and controls

179 lines (138 loc) · 6.56 KB

Induko Logo

Heilbronn University is researching advanced technical tools and didactic approaches designed to foster collaboration and interaction. The primary goal is to enhance and facilitate interdisciplinary, inter-faculty, and inter-university cooperation. Through the InduKo research project, we aim to strengthen this collaboration using innovative digital tools and modern, digitally supported strategies that boost motivation and foster innovation through partnership. A key aspect of this effort is involving students directly in the development process. The IdeaLize platform, a sub-project within InduKo, is designed to showcase HHN's ideas and projects, helping to identify collaboration opportunities, share expertise, and encourage new perspectives. Students, professors, lecturers, and staff are invited to post projects, engage in discussions, and collaborate or offer support, fostering a community of shared knowledge. This platform facilitates sustainable project management and transparent knowledge transfer, providing a comprehensive portfolio of HHN initiatives. It inspires joint projects, potential start-ups, and a broad spectrum of exchanges across locations and faculties, empowering both students and faculty to connect and innovate together. InduKo Project was funded by Stiftung Innovation in der Hochschullehre (August 2021 - July 2024).

Description

Back-end service of the project is developed on NestJS Framework, and could be served via Docker and docker-compose on a linux server.

  • Database: MongoDB
  • Programming language: Typescript
  • Authentication & guards : JWT
  • Package manager: NPM
  • Mailing system: Mailgun
  • API Documentation: Swagger

Minimum Requirements

STEP 1 > Download & install Node, Npm

STEP 2 > Download & install Nest

Node : 18.16.0
Npm  : 9.5.1
Nest : 9.2.0

Setup

Setup the project by running below steps

STEP 1

git clone https://github.com/Mahsa-Projects/Idealize-BE-Col # fetch the project from GitHub
cd Idealize-BE-Col/ # go to the project's root folder
mkdir uploads/ # make uploads/ folder
chmod +x uploads/ # grant full access to uploads/ folder
cd config/ # go to config/ folder
mkdir env/ # create env folder
touch development.env # create development env file
touch production.env # create production env file

Now you have to add these lines into your env files based on your data

PORT=3000
JWT_EXPIRES_IN=3m
JWT_REFRESH_EXPIRES_IN=10d
UPLOAD_PATH=./uploads
MONGODB_URI=Your-desire-mongo-db-path
JWT_SECRET=Your-desire-jwt-secret
JWT_ADMIN_SECRET=Your-desire-jwt-admin-secret
SWAGGER_USERNAME=Your-desire-swagger-username
SWAGGER_PASSWORD=Your-desire-swagger-password
MAILGUN_API_KEY=Your-desire-mailgun-api-key
MAILGUN_DOMAIN=Your-desire-mailgun-domain
MAILGUN_FROM=CampusConnect Your-desire-mailgun-from-header
CHAT_BOT_ENDPOINT_URL=http://127.0.0.1:8000/api/chatbot

STEP 2

$ npm install

Running the app

# development
$ npm run start:dev

# production mode
$ npm run start:prod

Support

Nest is an MIT-licensed open source project. It can grow thanks to the sponsors and support by the amazing backers. If you'd like to join them, please read more here.

Stay in touch

License

  • This project is licensed under Apache 2.0. Copyright 2024 Prof. Dr. Mahsa Fischer, Hochschule Heilbronn.
  • Nest is MIT licensed.

Licenses for Third-Party Libraries

Links

Setting up and running on Server

Requirements

  • A Unix-based os server (Ubunto, CentOS)
  • Install Docker on the server
  • Install Git on the server
  • Clone the project from GitHub
  • Go through the project folder and then,
mkdir uploads/ # make uploads/ folder
chmod +x uploads/ # grant full access to uploads/ folder
cd config/ # go to config/ folder
mkdir env/ # create env folder
touch development.env # create development env file
touch production.env # create production env file

Now you have to add these lines into your env files based on your data

PORT=3000
JWT_EXPIRES_IN=3m
JWT_REFRESH_EXPIRES_IN=10d
UPLOAD_PATH=./uploads
MONGODB_URI=Your-desire-mongo-db-path
JWT_SECRET=Your-desire-jwt-secret
JWT_ADMIN_SECRET=Your-desire-jwt-admin-secret
SWAGGER_USERNAME=Your-desire-swagger-username
SWAGGER_PASSWORD=Your-desire-swagger-password
MAILGUN_API_KEY=Your-desire-mailgun-api-key
MAILGUN_DOMAIN=Your-desire-mailgun-domain
MAILGUN_FROM=CampusConnect Your-desire-mailgun-from-header
CHAT_BOT_ENDPOINT_URL=http://127.0.0.1:8000/api/chatbot
  • At the end, run this command
docker-compose up -d

Domain & Cloudflare

We highly recommend to use CloudFlare, for handling your domain (DNS server) and enable TLS and proxy mode on the panel.

make certificate

To enable SSL mode on your domain you have to install and use certbot on the server

sudp apt-get install certbot
sudo certbot certonly --standalone -d yourdomain.com