Skip to content

The MyUpskills Server is a Node.js & Express.js-based backend designed for secure and scalable API management. It serves as the backend API for the MyUpskills Web (Frontend).

License

Notifications You must be signed in to change notification settings

study-in/myupskills-api

Repository files navigation

MyUpskills Web & Server Documentation 🚀

Overview

MyUpskills is a Recognition of Prior Learning (RPL) and Training Management platform offering both a Web Application (Frontend) and a Backend API (Server).

It provides users with a seamless experience to apply for RPL, track application progress, manage profiles, and handle administrative tasks.

This documentation covers both the Web (Frontend) and Server (Backend) services in a structured manner.


🖥️ MyUpskills Server (Backend)

The MyUpskills Server is a Node.js & Express.js-based backend designed for secure and scalable API management. It serves as the backend API for the MyUpskills Web (Frontend).

📌 Features of Server (Backend)

1️⃣ Authentication & Authorization

  • JWT-based Authentication 🔐: Secure login/signup.
  • Refresh Token Mechanism 🔄: For session persistence.
  • Role-Based Access Control (RBAC) 👮‍♂️: Different permissions for Users & Admins.

2️⃣ User Management

  • Create & Manage Users 👤: Register, update, and delete accounts.
  • Admin User Management 👥: Admins can manage user roles and permissions.
  • Profile Updates 📝: Users can edit their profile info.

3️⃣ RPL Application Processing

  • Application Submission 📝: Users can submit RPL applications with documents.
  • Application Tracking 📊: Users can track their RPL progress.
  • Admin Review & Approval ✅: Admins can approve, reject, or request more info.

4️⃣ Security & Performance

  • Zod Validation ✅: Request body validation.
  • Rate Limiting 🚧: Prevent abuse.
  • Helmet Security 🔒: Protect API from common threats.
  • Compression 📦: Optimize API response size.

5️⃣ API Documentation & CLI Support

  • Swagger API Docs 📜: /api-docs for API testing.
  • Built-in CLI Tool 🖥️: tran for quick commands.

🛠️ Tech Stack (Server)

  • Backend Framework: Express.js 🚀
  • Database: MongoDB (Mongoose) 🛢️
  • Authentication: JWT (Access & Refresh Tokens) 🔐
  • Validation: Zod ✅
  • Logging: Winston 📜
  • Security: Helmet, CORS, Rate Limiting 🔒
  • Process Management: PM2 ⚙️

🚀 Getting Started with Server

1️⃣ Clone the Repository

git clone [repository-url]
cd myupskills-server

2️⃣ Setup Environment Variables

cp .env.example .env
# Update .env with your configurations

3️⃣ Install Dependencies

npm install
# or
yarn install

4️⃣ Start Development Server

npm run dev

Server runs on http://localhost:3000.

5️⃣ Build & Run for Production

npm run build
npm start

📁 Project Structure (Server)

src/
├── app/
│   ├── modules/
│   │   ├── auth/       # Authentication
│   │   ├── users/      # User Management
│   │   ├── applications/ # RPL Application Management
│   ├── middlewares/    # Middleware Functions
│   ├── utils/          # Utility Functions
├── config/             # Configuration Files
├── interfaces/         # TypeScript Interfaces
└── server.ts           # Main Server File

🐳 Docker Support (Server)

Build Docker Image

docker build -t myupskills-server .

Run Docker Container

docker run -p 3000:3000 myupskills-server

🖥️ MyUpskills Web (Frontend)

The MyUpskills Web is a React.js-based frontend that provides a user-friendly interface for interacting with the RPL platform. It is built for users, administrators, and training providers to access and manage RPL services.

📌 Features of Web (Frontend)

1️⃣ User Interface & RPL Application

  • Homepage 🏠: Overview of MyUpskills services & RPL process.
  • Browse RPL Qualifications 🎓: Explore qualification details, requirements & benefits.
  • Apply for RPL 📝: Fill out the RPL application form with document uploads.
  • User Dashboard 📊: Track application progress, uploaded documents & status updates.
  • Mobile-Friendly Design 📱: Fully responsive for mobile & desktop users.

2️⃣ Authentication & User Management

  • Secure Registration & Login 🔑: User authentication via email/password & OAuth.
  • Profile Management 👤: Users can edit their information & view application history.
  • Password Recovery 🔄: Reset forgotten passwords easily.

3️⃣ Admin Dashboard

  • User Management 👥: Admins can add, update, and remove users.
  • Application Management ✅: Admins can review, approve, or reject applications.
  • Status Updates 📬: Notify users of their RPL application progress.
  • Reports & Insights 📈: Export application data for tracking & analysis.

4️⃣ Communication & Notifications

  • Email Notifications 📩: Automatic updates on application progress.
  • User Messaging (Future) 💬: Direct communication between users & support staff.
  • Support & FAQs 🆘: Help section for common queries.

5️⃣ Payment & Certification (Upcoming Features)

  • Integrated Payment System 💳: Secure online payments for RPL applications.
  • Digital Certificates 📜: Downloadable certificates after successful RPL approval.

🛠️ Tech Stack (Web)

  • Frontend Framework: React.js ⚛️
  • Styling: Tailwind CSS, SASS 🎨
  • State Management: Redux Toolkit 🔄
  • API Communication: REST API (Axios) 📡
  • Testing: Jest, React Testing Library 🧪
  • Build Tool: Webpack 🛠️
  • Package Manager: pnpm 📦

🚀 Getting Started with Web

1️⃣ Clone the Repository

git clone [repository-url]
cd myupskills-web

2️⃣ Install Dependencies

pnpm install

3️⃣ Start Development Server

pnpm start

The app runs on http://localhost:3000.

4️⃣ Build for Production

pnpm run build

This creates an optimized build in /dist.


📁 Project Structure (Web)

src/
├── components/        # Reusable UI Components
├── pages/            # Application Pages
├── redux/            # State Management (Redux Toolkit)
├── services/         # API Services (Axios)
├── styles/           # Global Styles (Tailwind, SASS)
├── utils/            # Utility Functions
├── hooks/            # Custom Hooks
└── App.tsx           # Main App Component

🐳 Docker Support (Web)

Build Docker Image

docker build -t myupskills-web .

Run Docker Container

docker run -p 3000:3000 myupskills-web

🌟 Future Enhancements

  • WebSockets Integration 🔄: Real-time application updates.
  • AI-based Application Review 🧠: Automated analysis of documents.
  • Blockchain-based Certificate Verification 🔗: Immutable RPL validation.
  • Multi-Tenant Support 🏢: Custom access for institutions.

📜 License

This project is licensed under the MIT License.


📩 Contact & Support

📧 Email: support@myupskills.coma.au
🌐 Website: www.myupskills.com.au


Made with ❤️ by the MyUpskills Team 🚀

About

The MyUpskills Server is a Node.js & Express.js-based backend designed for secure and scalable API management. It serves as the backend API for the MyUpskills Web (Frontend).

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published