├── .gitignore ├── README.md ├── docker-compose.yml ├── linuxfest-backend ├── .env.db.test ├── .env.dev.test ├── Dockerfile ├── mails │ ├── form.html │ ├── password.html │ └── register.html ├── package-lock.json ├── package.json └── src │ ├── app.js │ ├── config │ ├── index.js │ └── logger.js │ ├── db │ └── mongoose.js │ ├── express_middlewares │ ├── adminAuth.js │ └── userAuth.js │ ├── index.js │ ├── models │ ├── Company.js │ ├── Discount.js │ ├── Static.js │ ├── SuperUser.js │ ├── Teacher.js │ ├── User.js │ └── Workshop.js │ ├── routers │ ├── company.js │ ├── discount.js │ ├── files.js │ ├── static.js │ ├── superuser.js │ ├── teacher.js │ ├── user.js │ └── workshop.js │ └── utils │ └── utils.js └── nginx ├── Dockerfile └── nginx.conf /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .vscode 3 | mongodb 4 | mongodb-data 5 | .env* 6 | !.env*test 7 | .eslintrc.json 8 | uploads 9 | *.orig 10 | *.log 11 | logs 12 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # LinuxFest-Website-backend 2 | back-end of LinuxFest website 3 | 4 | To use docker, the file structure should be like below: 5 | ``` 6 | . 7 | ├── docker-compose.yml 8 | ├── backend 9 | │ └── linuxfest-backend 10 | │ ├── Dockerfile 11 | │ ├── .env.db 12 | │ ├── .env.dev 13 | │ └── src/ 14 | └── nginx 15 | ├── Dockerfile 16 | ├── nginx.conf 17 | ├── front/ 18 | └── panel/ 19 | ``` 20 | NOTE: Rename .env.dev.test to .env.dev and also .env.db.test to .env.db 21 | 22 | And to build and create a container run these lines: 23 | ``` 24 | docker-compose --env-file ./backend/linuxfest-backend/.env.db -f docker-compose.yml build 25 | docker-compose --env-file ./backend/linuxfest-backend/.env.db -f docker-compose.yml up -d 26 | ``` 27 | -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: "3" 2 | 3 | services: 4 | nginx: 5 | container_name: nginx 6 | ports: 7 | - "81:80" 8 | build: 9 | context: ./nginx/ 10 | networks: 11 | - nginx-net 12 | depends_on: 13 | - node-app 14 | 15 | node-app: 16 | container_name: node-app 17 | build: 18 | context: ./backend/linuxfest-backend/ 19 | args: 20 | NODE_ENV: production 21 | volumes: 22 | - upload-files:/app/uploads 23 | environment: 24 | - NODE_ENV=production 25 | - MONGO_USER=${MONGO_USER} 26 | - MONGO_PASSWORD=${MONGO_PASSWORD} 27 | - PWD=/app 28 | env_file: 29 | - ./backend/linuxfest-backend/.env.dev 30 | networks: 31 | - api-net 32 | - nginx-net 33 | depends_on: 34 | - mongo 35 | command: node ./src/index.js 36 | 37 | mongo: 38 | image: mongo:4.4 39 | container_name: mongodb 40 | volumes: 41 | - mongo-db:/data/db 42 | networks: 43 | - api-net 44 | environment: 45 | - MONGO_INITDB_ROOT_USERNAME=${MONGO_INITDB_ROOT_USERNAME} 46 | - MONGO_INITDB_ROOT_PASSWORD=${MONGO_INITDB_ROOT_PASSWORD} 47 | 48 | volumes: 49 | upload-files: 50 | mongo-db: 51 | 52 | networks: 53 | api-net: {} 54 | nginx-net: {} 55 | -------------------------------------------------------------------------------- /linuxfest-backend/.env.db.test: -------------------------------------------------------------------------------- 1 | MONGO_USER=alinow 2 | MONGO_PASSWORD=123456 3 | MONGO_INITDB_ROOT_USERNAME=alinow 4 | MONGO_INITDB_ROOT_PASSWORD=123456 -------------------------------------------------------------------------------- /linuxfest-backend/.env.dev.test: -------------------------------------------------------------------------------- 1 | MONGOURL=mongodb://localhost:27017/linux-fest-test 2 | PORT=5000 3 | BASEURL=api 4 | MAILHOST=smtp.gmail.com 5 | MAILUSER=mailuser 6 | MAILPASS=mailpass 7 | ALLOWED_HOSTS=http://localhost:8080 http://localhost:8081 8 | SIGN_TOKEN=randomstr 9 | SUPER_TOKEN_SIGN=randomstr 10 | SITE_VERSION=v_2022 11 | FRONTURL=http://localhost:8080 12 | ZARIN=merchantID 13 | RANDOM=123 14 | MONGO_USER=alinow 15 | MONGO_PASSWORD=123456 16 | MONGO_INITDB_ROOT_USERNAME=alinow 17 | MONGO_INITDB_ROOT_PASSWORD=123456 -------------------------------------------------------------------------------- /linuxfest-backend/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM node:16.10.0-alpine 2 | 3 | WORKDIR /app 4 | COPY package.json . 5 | 6 | ARG NODE_ENV 7 | RUN if [ "$NODE_ENV" = "production" ]; \ 8 | then npm install --only=production; \ 9 | else npm install; \ 10 | fi 11 | 12 | COPY . ./ 13 | 14 | 15 | ENV PORT 5000 16 | EXPOSE $PORT 17 | -------------------------------------------------------------------------------- /linuxfest-backend/mails/form.html: -------------------------------------------------------------------------------- 1 | 3 | 4 |
5 | 7 | 15 | 16 | 17 | 18 | 19 | 20 | 21 |
119 |
120 |
121 |
122 |
123 |
179 |
180 |
181 |
182 |
125 |
178 |
127 |
128 |
129 |
130 |
177 |
132 |
174 |
175 |
176 |
134 |
135 |
173 |
137 |
138 |
139 |
171 |
172 |
183 |
249 |
250 |
251 |
252 |
185 |
248 |
187 |
188 |
189 |
190 |
247 |
192 |
244 |
245 |
246 |
194 |
195 |
243 |
197 |
198 |
199 |
241 |
242 |
253 |
309 |
310 |
311 |
312 |
255 |
308 |
257 |
258 |
259 |
260 |
307 |
262 |
304 |
305 |
306 |
264 |
265 |
303 |
267 |
268 |
269 |
301 |
302 |
|
313 |
119 |
120 |
121 |
122 |
123 |
179 |
180 |
181 |
182 |
125 |
178 |
127 |
128 |
129 |
130 |
177 |
132 |
174 |
175 |
176 |
134 |
135 |
173 |
137 |
138 |
139 |
171 |
172 |
183 |
252 |
253 |
254 |
255 |
185 |
251 |
187 |
188 |
189 |
190 |
250 |
192 |
247 |
248 |
249 |
194 |
195 |
246 |
197 |
198 |
199 |
244 |
245 |
256 |
312 |
313 |
314 |
315 |
258 |
311 |
260 |
261 |
262 |
263 |
310 |
265 |
307 |
308 |
309 |
267 |
268 |
306 |
270 |
271 |
272 |
304 |
305 |
|
316 |
119 |
120 |
121 |
122 |
123 |
179 |
180 |
181 |
182 |
125 |
178 |
127 |
128 |
129 |
130 |
177 |
132 |
174 |
175 |
176 |
134 |
135 |
173 |
137 |
138 |
139 |
171 |
172 |
183 |
249 |
250 |
251 |
252 |
185 |
248 |
187 |
188 |
189 |
190 |
247 |
192 |
244 |
245 |
246 |
194 |
195 |
243 |
197 |
198 |
199 |
241 |
242 |
253 |
309 |
310 |
311 |
312 |
255 |
308 |
257 |
258 |
259 |
260 |
307 |
262 |
304 |
305 |
306 |
264 |
265 |
303 |
267 |
268 |
269 |
301 |
302 |
|
313 |