Skip to content

Ivan29G/NextStep

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

64 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸš€ NextStep - ICT Career Pathway Discovery Platform

React .NET TypeScript SQLite Tailwind

🎯 Empowering students to discover their perfect ICT career path

A modern full-stack application connecting students with industry experts for career guidance and skill development


πŸ“‹ Table of Contents

✨ Features

For Students

  • πŸŽ“ Smart Career Assessment - AI-powered career path recommendations
  • πŸ“Š Skill Tracking - Monitor your learning progress and achievements
  • πŸ† Gamification - Earn points, level up, and compete on leaderboards
  • πŸ’Ό Industry Connections - Connect with real industry professionals
  • πŸ“š Curated Learning - Access to relevant courses and resources

For Industry Experts

  • πŸ‘₯ Student Discovery - Find and mentor promising students
  • 🎯 Talent Pipeline - Build relationships with future employees
  • πŸ“ˆ Impact Tracking - See your influence on student career paths
  • 🌟 Professional Branding - Showcase your expertise and company

Platform Features

  • πŸ” Secure Authentication - JWT-based user authentication
  • πŸ“± Responsive Design - Works perfectly on all devices
  • ⚑ Fast Performance - Optimized with modern web technologies
  • πŸ”„ Real-time Updates - Live data synchronization
  • πŸ“– API Documentation - Comprehensive Swagger documentation

πŸ—οΈ Tech Stack

Backend

  • Framework: ASP.NET Core 9.0
  • Database: SQLite with Entity Framework Core
  • Authentication: JWT (JSON Web Tokens)
  • Documentation: Swagger/OpenAPI
  • Architecture: Clean Architecture with Dependency Injection

Frontend

  • Framework: React 18 with TypeScript
  • Build Tool: Vite (Lightning fast HMR)
  • UI Framework: Tailwind CSS + shadcn/ui components
  • State Management: React Context + TanStack Query
  • Routing: React Router v6
  • HTTP Client: Native Fetch API

Development Tools

  • Package Manager: npm
  • Code Quality: ESLint + Prettier
  • Version Control: Git with conventional commits
  • API Testing: Swagger UI + REST Client

πŸš€ Quick Start

Prerequisites

1. Clone the Repository

git clone https://github.com/Team-BISHOP/nextstep.git
cd nextstep

2. Backend Setup

# Navigate to backend directory
cd backend

# Restore dependencies
dotnet restore

# Start the backend server
dotnet run

Backend will be available at:

  • API: https://localhost:7010
  • Swagger Docs: https://localhost:7010/swagger

3. Frontend Setup

# Navigate to frontend directory (in a new terminal)
cd frontend

# Install dependencies
npm install

# Start the development server
npm run dev

Frontend will be available at:

  • App: http://localhost:8080

4. Test the Connection

  1. Visit http://localhost:8080/auth
  2. Create a new account (Student or Industry Expert)
  3. Login with your credentials
  4. Explore the platform!

πŸ”§ Development Setup

Environment Variables

Backend (backend/appsettings.Development.json)

{
  "ConnectionStrings": {
    "DefaultConnection": "Data Source=nextstep_dev.db"
  },
  "JwtSettings": {
    "SecretKey": "your-super-secret-key-at-least-32-characters",
    "Issuer": "NextStepAPI",
    "Audience": "NextStepClient",
    "ExpiryInHours": 24
  }
}

Frontend (frontend/.env)

VITE_API_URL=https://localhost:7010/api

Development Commands

Backend

# Restore dependencies
dotnet restore

# Run in development mode
dotnet run

# Run with hot reload
dotnet watch run

# Install CLI tool for Entity Framework Core
dotnet tool install --global dotnet-ef

# Create new migration
dotnet ef migrations add MigrationName --output-dir Data/Migrations

# Update database
dotnet ef database update

# Run tests
dotnet test

Frontend

# Start development server
npm run dev

# Build for production
npm run build

# Preview production build
npm run preview

# Run linting
npm run lint

# Fix linting issues
npm run lint:fix

πŸ“š API Documentation

πŸ›‘οΈ Authentication Endpoints

Method Endpoint Description
POST /api/Auth/register Create new user account
POST /api/Auth/login Authenticate user

πŸ“˜ Course Endpoints

Method Endpoint Description
GET /api/Courses Get all courses
GET /api/Courses/{courseId} Get course by ID
POST /api/Courses/{courseId}/enroll Enroll in a course
PUT /api/Courses/{courseId}/progress Update progress in a course
POST /api/Courses/{courseId}/complete Mark course as complete

πŸ† Leaderboard Endpoints

Method Endpoint Description
GET /api/Leaderboard Get global leaderboard
GET /api/Leaderboard/my-rank Get logged-in user's rank

πŸ™β€β™‚οΈ Profile Endpoints

Method Endpoint Description
GET /api/Profiles/me Get your profile
PUT /api/Profiles/me Update your profile
GET /api/Profiles/{userId}/public Get public profile of a user
GET /api/Profiles/students Get list of student profiles

πŸ“‚ Project Endpoints

Method Endpoint Description
GET /api/Projects Get all projects
POST /api/Projects Create new project
GET /api/Projects/{projectId} Get project by ID
PUT /api/Projects/{projectId} Update project by ID
DELETE /api/Projects/{projectId} Delete project by ID

πŸ“¨ Subscription Endpoints

Method Endpoint Description
POST /api/Subscription/subscribe Subscribe to a service
POST /api/Subscription/unsubscribe Unsubscribe from a service

Interactive Documentation

Visit https://localhost:7010/swagger while the backend is running to explore the full Swagger-based API documentation.

🀝 Contributing

We welcome contributions from the community!

Code Style

  • Backend: Follow C# coding conventions
  • Frontend: ESLint + Prettier configurations included
  • Database: Use Entity Framework migrations for schema changes

πŸ› Troubleshooting

Common Issues

CORS Errors

Access to fetch has been blocked by CORS policy

Solution: Ensure backend is running and CORS is configured for your frontend URL.

Database Not Found

SQLite Error 1: 'no such table: Users'

Solution: Run dotnet ef database update in the backend directory.

Port Already in Use

Failed to bind to address https://localhost:7010

Solution: Kill the process using the port or change the port in launchSettings.json.

🎯 Roadmap

Phase 1 (Current) βœ…

  • User authentication system
  • Basic frontend structure
  • API documentation

Phase 2 (In Progress) 🚧

  • User profile management
  • Career assessment quiz
  • Student-expert matching

Phase 3 (Planned) πŸ“‹

  • Learning path recommendations
  • Progress tracking
  • Gamification system
  • Real-time chat
  • Mobile app

πŸ“„ License

This project is licensed under the Apache License - see the LICENSE file for details.

🌟 Acknowledgments

  • shadcn/ui - Beautiful UI components
  • Tailwind CSS - Utility-first CSS framework
  • ASP.NET Core - High-performance web framework
  • React - A JavaScript library for building user interfaces

Made with ❀️ by the NextStep Team

⭐ Star us on GitHub if this project helped you!

πŸ“ž Contact


About

ICT Career Pathway Discovery Platform

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 81.1%
  • C# 15.5%
  • JavaScript 1.9%
  • CSS 1.3%
  • HTML 0.2%