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.
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).
- JWT-based Authentication 🔐: Secure login/signup.
- Refresh Token Mechanism 🔄: For session persistence.
- Role-Based Access Control (RBAC) 👮♂️: Different permissions for Users & Admins.
- 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.
- 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.
- Zod Validation ✅: Request body validation.
- Rate Limiting 🚧: Prevent abuse.
- Helmet Security 🔒: Protect API from common threats.
- Compression 📦: Optimize API response size.
- Swagger API Docs 📜:
/api-docs
for API testing. - Built-in CLI Tool 🖥️:
tran
for quick commands.
- Backend Framework: Express.js 🚀
- Database: MongoDB (Mongoose) 🛢️
- Authentication: JWT (Access & Refresh Tokens) 🔐
- Validation: Zod ✅
- Logging: Winston 📜
- Security: Helmet, CORS, Rate Limiting 🔒
- Process Management: PM2 ⚙️
git clone [repository-url]
cd myupskills-server
cp .env.example .env
# Update .env with your configurations
npm install
# or
yarn install
npm run dev
Server runs on http://localhost:3000
.
npm run build
npm start
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 build -t myupskills-server .
docker run -p 3000:3000 myupskills-server
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.
- 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.
- 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.
- 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.
- Email Notifications 📩: Automatic updates on application progress.
- User Messaging (Future) 💬: Direct communication between users & support staff.
- Support & FAQs 🆘: Help section for common queries.
- Integrated Payment System 💳: Secure online payments for RPL applications.
- Digital Certificates 📜: Downloadable certificates after successful RPL approval.
- 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 📦
git clone [repository-url]
cd myupskills-web
pnpm install
pnpm start
The app runs on http://localhost:3000
.
pnpm run build
This creates an optimized build in /dist
.
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 build -t myupskills-web .
docker run -p 3000:3000 myupskills-web
- 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.
This project is licensed under the MIT License.
📧 Email: support@myupskills.coma.au
🌐 Website: www.myupskills.com.au
Made with ❤️ by the MyUpskills Team 🚀