Skip to content
This repository has been archived by the owner on Apr 4, 2023. It is now read-only.

example nodejs application | Internship Form for student. Director confirm the Form...

Notifications You must be signed in to change notification settings

billowdev/internship-management-system

Repository files navigation

Contributors Forks Stargazers Issues MIT License LinkedIn

ระบบสารสนเทศเพื่อจัดการสถานที่ฝึกประสบการณ์วิชาชีพสาขาวิชาคอมพิวเตอร์

ระบบนี้ได้ถูกพัฒนาขึ้นเพื่อแก้ไขปัญหาความล่าช้าในการส่งแบบฟอร์มฝึกประสบการณ์วิชาชีพของนักศึกษา โดยพัฒนาด้วย React.js Redux Node.js Express MySQL Sequelize
Explore the docs »

View Demo · Report Bug · Request Feature

Table of Contents
  1. About The Project
  2. Getting Started
  3. Roadmap
  4. Project Stucture
  5. Contributing
  6. Contact

About The Project

(back to top)

Built With

(back to top)

Getting Started

ระบบสารสนเทศเพื่อจัดการสถานที่ฝึกประสบการณ์วิชาชีพสาขาวิชาคอมพิวเตอร์ ซึ่งเป็นโครงงานคอมพิวเตอร์นี้ขึ้นมา เพื่อแก้ปัญหา ในการจัดการแบบฟอร์มสถานที่ฝึกประสบการณ์วิชาชีพสาขาวิชาคอมพิวเตอร์

Prerequisites

BACK END - Node.js

หลังบ้านจัดการฐานข้อมูลด้วย sequelize
  • models
  • routes
  • controllers

FRONT END - React.js & Redux

หน้าบ้านพัฒนาด้วย React.js ร่วมกับไลบรารี่จัดการ State Redux แบ่งเป็น 3 ส่วนหลักๆ
  • infrastructure ( Axios - การเชื่อมต่อกับ api)
  • views ( React - admin, director, student)
  • redux ( Redux - action middleware reducer selector store)
  • npm
    npm install npm@latest -g

Installation

  1. Clone the repo
    git clone https://github.com/lacakira/internship-management-system.git
  2. Install NPM packages
    npm install
  3. Enter your API in /server/infrastructure/services/config/index.js
     const BASE_URL = "http://localhost:5000/api";
  4. DOT ENV /src/.env
     NODE_ENV=development
     CLIENT_URL= "http://localhost"
     PORT="YOUR PORT"
     JWT_SECRET= "YOUR JWT RANDOM THING"
     DB_USERNAME= "DBUSERNAME"
     DB_PASSWORD="DBPASS"
     DB_HOST=
    
     DB_DATABASE_MAIN_DEV= internship_db
     DB_DATABASE_ADDRESS_DEV=thai_addresses_db
    
     DB_DATABASE_MAIN_PRODUCTION=internship_db
     DB_DATABASE_ADDRESS_PRODUCTION=thai_addresses_db
    
     DB_DATABASE_MAIN_TEST=internship_db
     DB_DATABASE_ADDRESS_TEST=thai_addresses_db
    
     PATH_TO_SAVE_IMG_PRODUCTION=/var/www/html/images
     PATH_TO_SAVE_IMG_DEVELOPMENT=../public/images

(back to top)

Roadmap

  • Make code cleaner
  • keep images with another option

Release version 1.0.0

นักศึกษา

  • สามารถเข้าสู่ระบบได้
  • สามารถดูแบบฟอร์มฝึกประสบการณ์วิชาชีพได้
  • สามารถเพิ่มข้อมูลแบบฟอร์มฝึกประสบการณ์วิชาชีพได้
  • สามารถส่งแบบฟอร์มฝึกประสบการณ์วิชาชีพได้
  • เมื่อส่งแบบฟอร์มจะไม่สามารถบันทึกข้อมูลแบบฟอร์มฝึกประสบการณ์วิชาชีพได้
  • สามารถยกเลิกการส่งแบบฟอร์มวิชาชีพได้
  • สามารถดูข้อมูลแบบฟอร์มประวัติส่วนตัวได้
  • สามารถเพิ่มข้อมูลแบบฟอร์มประวัติส่วนตัวได้
  • สามารถบันทึกแบบฟอร์มประวัติส่วนตัวได้
  • สามารถออกจากระบบได้

คณะกรรมการฝึกประสบการณ์วิชาชีพ

  • สามารถเข้าสู่ระบบได้
  • สามารถดูข้อมูลรายการฝึกประบการณ์วิชาชีพนักศึกษา สถาณะ "รออนุมัติ" ได้
  • สามารถดูข้อมูลแบบฟอร์มฝึกประสบการณ์วิชาชีพของนักศึกษาได้
  • สามารถอนุมัติแบบฟอร์มฝึกประสบการณ์วิชาชีพของนักศึกษาได้
  • สามารถส่งคืนแบบฟอร์มฝึกประสบการณ์วิชาชีพของนักศึกษาได้
  • สามารถดูข้อมูลรายการฝึกประบการณ์วิชาชีพนักศึกษา สถาณะ "อนุมัติ" ได้
  • สามารถเปลี่ยนสถานะแบบฟอร์มฝึกประสบการณ์วิชาชีพของนักศึกษา เป็น "รออนุมัติ" ได้
  • สามารถออกจากระบบได้

ผู้ดูแลระบบ

  • สามารถเข้าสู่ระบบได้
  • สามารถดูข้อมูลรายการข้อมูลสมาชิกได้
  • สามารถเพิ่มสมาชิกได้
  • สามารถแก้ไขข้อมูลการเข้าสู่ระบบของสมาชิกได้
  • สามารถแก้ไขประวัติส่วนตัวของนักศึกษาได้
  • สามารถออกจากระบบได้

Project Stucture


📦internship-management-system
 ┣ 📂public
 ┃ ┣ 📂images
 ┃ ┣ 📜favicon.ico
 ┃ ┣ 📜index.html
 ┃ ┣ 📜logo192.png
 ┃ ┣ 📜logo512.png
 ┃ ┣ 📜manifest.json
 ┃ ┗ 📜robots.txt
 ┣ 📂README
 ┃ ┗ 📂system-analysis
 ┃ ┃ ┗ 📜ER-Diagram.png
 ┣ 📂server
 ┃ ┣ 📂config
 ┃ ┃ ┗ 📜config.js
 ┃ ┣ 📂controllers
 ┃ ┃ ┣ 📂admin
 ┃ ┃ ┃ ┣ 📜admin.students.controller.js
 ┃ ┃ ┃ ┗ 📜login.controller.js
 ┃ ┃ ┣ 📜addresses.controller.js
 ┃ ┃ ┣ 📜auth.controllers.js
 ┃ ┃ ┣ 📜directors.controller.js
 ┃ ┃ ┣ 📜internships.controller.js
 ┃ ┃ ┣ 📜students.controller.js
 ┃ ┃ ┣ 📜thaiAddresses.controller.js
 ┃ ┃ ┗ 📜upload.controller.js
 ┃ ┣ 📂database
 ┃ ┃ ┣ 📜internship_db.sql
 ┃ ┃ ┗ 📜thai_addresses_db.sql
 ┃ ┣ 📂middlewares
 ┃ ┃ ┗ 📜auth.middleware.js
 ┃ ┣ 📂models
 ┃ ┃ ┣ 📂internship
 ┃ ┃ ┃ ┣ 📜Addresses.js
 ┃ ┃ ┃ ┣ 📜Companies.js
 ┃ ┃ ┃ ┣ 📜ContactPersons.js
 ┃ ┃ ┃ ┣ 📜CoStudentInternships.js
 ┃ ┃ ┃ ┣ 📜Directors.js
 ┃ ┃ ┃ ┣ 📜Educations.js
 ┃ ┃ ┃ ┣ 📜HometownAddresses.js
 ┃ ┃ ┃ ┣ 📜index.js
 ┃ ┃ ┃ ┣ 📜Internships.js
 ┃ ┃ ┃ ┣ 📜Login.js
 ┃ ┃ ┃ ┣ 📜PresentAddresses.js
 ┃ ┃ ┃ ┗ 📜Students.js
 ┃ ┃ ┗ 📂thaiAddresses
 ┃ ┃ ┃ ┣ 📜Districts.js
 ┃ ┃ ┃ ┣ 📜Geographies.js
 ┃ ┃ ┃ ┣ 📜index.js
 ┃ ┃ ┃ ┣ 📜Provinces.js
 ┃ ┃ ┃ ┗ 📜SubDistricts.js
 ┃ ┣ 📂routes
 ┃ ┃ ┣ 📂admin
 ┃ ┃ ┃ ┣ 📜admin.students.route.js
 ┃ ┃ ┃ ┗ 📜login.route.js
 ┃ ┃ ┣ 📜addresses.route.js
 ┃ ┃ ┣ 📜auth.route.js
 ┃ ┃ ┣ 📜directors.route.js
 ┃ ┃ ┣ 📜internships.route.js
 ┃ ┃ ┣ 📜students.route.js
 ┃ ┃ ┣ 📜thaiAddresses.route.js
 ┃ ┃ ┗ 📜upload.route.js
 ┃ ┣ 📜.env
 ┃ ┣ 📜.eslintrc.js
 ┃ ┣ 📜.gitignore
 ┃ ┣ 📜app.js
 ┃ ┣ 📜Copy.env
 ┃ ┣ 📜index.js
 ┃ ┣ 📜package.json
 ┃ ┣ 📜README.md
 ┃ ┣ 📜server.zip
 ┃ ┗ 📜yarn.lock
 ┣ 📂src
 ┃ ┣ 📂helpers
 ┃ ┃ ┗ 📜Persist.js
 ┃ ┣ 📂infrastructure
 ┃ ┃ ┗ 📂services
 ┃ ┃ ┃ ┣ 📂api
 ┃ ┃ ┃ ┃ ┣ 📂admin
 ┃ ┃ ┃ ┃ ┃ ┣ 📜login.js
 ┃ ┃ ┃ ┃ ┃ ┗ 📜profile.js
 ┃ ┃ ┃ ┃ ┣ 📂auth
 ┃ ┃ ┃ ┃ ┃ ┣ 📜index.js
 ┃ ┃ ┃ ┃ ┃ ┗ 📜login.js
 ┃ ┃ ┃ ┃ ┣ 📂director
 ┃ ┃ ┃ ┃ ┃ ┗ 📜index.js
 ┃ ┃ ┃ ┃ ┣ 📂student
 ┃ ┃ ┃ ┃ ┃ ┗ 📜index.js
 ┃ ┃ ┃ ┃ ┣ 📂thaiAddresses
 ┃ ┃ ┃ ┃ ┃ ┣ 📜index.js
 ┃ ┃ ┃ ┃ ┃ ┗ 📜thaiAddressApi.js
 ┃ ┃ ┃ ┃ ┣ 📂upload
 ┃ ┃ ┃ ┃ ┃ ┗ 📜index.js
 ┃ ┃ ┃ ┃ ┣ 📂users
 ┃ ┃ ┃ ┃ ┃ ┗ 📜index.js
 ┃ ┃ ┃ ┃ ┗ 📜index.js
 ┃ ┃ ┃ ┣ 📂config
 ┃ ┃ ┃ ┃ ┗ 📜index.js
 ┃ ┃ ┃ ┣ 📂logger
 ┃ ┃ ┃ ┃ ┣ 📜console.js
 ┃ ┃ ┃ ┃ ┗ 📜elastic-search.js
 ┃ ┃ ┃ ┗ 📜index.js
 ┃ ┣ 📂redux
 ┃ ┃ ┣ 📂actions
 ┃ ┃ ┃ ┣ 📂admin
 ┃ ┃ ┃ ┃ ┣ 📜login.js
 ┃ ┃ ┃ ┃ ┗ 📜profile.js
 ┃ ┃ ┃ ┣ 📂director
 ┃ ┃ ┃ ┃ ┗ 📜internship.js
 ┃ ┃ ┃ ┣ 📂student
 ┃ ┃ ┃ ┃ ┣ 📜internship.js
 ┃ ┃ ┃ ┃ ┗ 📜resume.js
 ┃ ┃ ┃ ┣ 📜auth.js
 ┃ ┃ ┃ ┣ 📜ui.js
 ┃ ┃ ┃ ┣ 📜upload.js
 ┃ ┃ ┃ ┗ 📜users.js
 ┃ ┃ ┣ 📂middleware
 ┃ ┃ ┃ ┣ 📂admin
 ┃ ┃ ┃ ┃ ┣ 📜login.js
 ┃ ┃ ┃ ┃ ┗ 📜profile.js
 ┃ ┃ ┃ ┣ 📂director
 ┃ ┃ ┃ ┃ ┗ 📜internship.js
 ┃ ┃ ┃ ┣ 📂student
 ┃ ┃ ┃ ┃ ┣ 📜internship.js
 ┃ ┃ ┃ ┃ ┗ 📜resume.js
 ┃ ┃ ┃ ┣ 📜auth.js
 ┃ ┃ ┃ ┣ 📜index.js
 ┃ ┃ ┃ ┣ 📜ui.js
 ┃ ┃ ┃ ┣ 📜upload.js
 ┃ ┃ ┃ ┗ 📜users.js
 ┃ ┃ ┣ 📂reducers
 ┃ ┃ ┃ ┣ 📂admin
 ┃ ┃ ┃ ┃ ┣ 📜login.js
 ┃ ┃ ┃ ┃ ┗ 📜profile.js
 ┃ ┃ ┃ ┣ 📂director
 ┃ ┃ ┃ ┃ ┗ 📜internship.js
 ┃ ┃ ┃ ┣ 📂student
 ┃ ┃ ┃ ┃ ┗ 📜internship.js
 ┃ ┃ ┃ ┣ 📜auth.js
 ┃ ┃ ┃ ┣ 📜index.js
 ┃ ┃ ┃ ┗ 📜ui.js
 ┃ ┃ ┣ 📂selectors
 ┃ ┃ ┃ ┣ 📂admin
 ┃ ┃ ┃ ┃ ┣ 📜login.js
 ┃ ┃ ┃ ┃ ┗ 📜profile.js
 ┃ ┃ ┃ ┣ 📂director
 ┃ ┃ ┃ ┃ ┗ 📜internship.js
 ┃ ┃ ┃ ┣ 📂student
 ┃ ┃ ┃ ┃ ┗ 📜internship.js
 ┃ ┃ ┃ ┣ 📜auth.js
 ┃ ┃ ┃ ┣ 📜ui.js
 ┃ ┃ ┃ ┗ 📜users.js
 ┃ ┃ ┗ 📜store.js
 ┃ ┣ 📂views
 ┃ ┃ ┣ 📂admin
 ┃ ┃ ┃ ┣ 📂manages
 ┃ ┃ ┃ ┃ ┣ 📜Login.jsx
 ┃ ┃ ┃ ┃ ┣ 📜LoginAdd.jsx
 ┃ ┃ ┃ ┃ ┣ 📜LoginUpdate.jsx
 ┃ ┃ ┃ ┃ ┣ 📜StudentUpdate.jsx
 ┃ ┃ ┃ ┃ ┗ 📜StudentUpdateHook.jsx
 ┃ ┃ ┃ ┣ 📜Controllers.jsx
 ┃ ┃ ┃ ┗ 📜index.jsx
 ┃ ┃ ┣ 📂components
 ┃ ┃ ┃ ┣ 📜Footer.jsx
 ┃ ┃ ┃ ┣ 📜Layout.jsx
 ┃ ┃ ┃ ┣ 📜Missing.jsx
 ┃ ┃ ┃ ┣ 📜Navbar.jsx
 ┃ ┃ ┃ ┣ 📜RequireAuth.jsx
 ┃ ┃ ┃ ┣ 📜Signin.jsx
 ┃ ┃ ┃ ┗ 📜Unauthorized.jsx
 ┃ ┃ ┣ 📂director
 ┃ ┃ ┃ ┣ 📂internship
 ┃ ┃ ┃ ┃ ┣ 📜InternshipsConfirmed.jsx
 ┃ ┃ ┃ ┃ ┣ 📜InternshipsPending.jsx
 ┃ ┃ ┃ ┃ ┗ 📜InternshipsViews.jsx
 ┃ ┃ ┃ ┗ 📜index.jsx
 ┃ ┃ ┣ 📂students
 ┃ ┃ ┃ ┣ 📜Controllers.jsx
 ┃ ┃ ┃ ┣ 📜index.jsx
 ┃ ┃ ┃ ┣ 📜InternshipForm.jsx
 ┃ ┃ ┃ ┣ 📜InternshipHook.jsx
 ┃ ┃ ┃ ┣ 📜ResumeForm.jsx
 ┃ ┃ ┃ ┣ 📜ResumeHook.jsx
 ┃ ┃ ┃ ┗ 📜StudentHomePage.jsx
 ┃ ┃ ┣ 📜Home.jsx
 ┃ ┃ ┗ 📜index.jsx
 ┃ ┣ 📜index.css
 ┃ ┗ 📜index.js
 ┣ 📜.gitignore
 ┣ 📜package-lock.json
 ┣ 📜package.json
 ┣ 📜postcss.config.js
 ┣ 📜README.md
 ┣ 📜tailwind.config.js
 ┣ 📜webpack.config.js
 ┗ 📜yarn.lock

See the open issues for a full list of proposed features (and known issues).

(back to top)

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

(back to top)

Contact

Akkarapon Phikulsri - lacakira@gmail.com

Project Link: https://github.com/billowdev/internship-management-system

(back to top)

(back to top)