NXTApp is an open-source peer-to-peer education platform designed as a monorepo to manage various components of the application. The repository contains multiple services, primarily written in C#, alongside modern frontend technologies like Svelte and TypeScript.
-
Backend: Contains the backend services for the application, written in C#.
NXTBackend.API: Main API service.NXTBackend.API.Core: Core business logic and reusable utilities.NXTBackend.API.Models: Data models used across services.NXTBackend.API.Infrastructure: Database and external service interactions.NXTBackend.API.Domain: Domain-specific definitions.NXTBackend.API.Tests: Unit tests for backend services.
-
Frontend: Built using Svelte and TypeScript.
-
Docker: Configuration for containerizing the application.
-
Clone the repository:
git clone https://github.com/W2Inc/NXTApp.git cd NXTApp -
Set up required services:
- Install and configure PostgreSQL.
- Set up Keycloak for authentication and authorization.
- Set up a Gitea (or Forgejo) as the backend relies on it's API
-
Configure environment variables:
- Refer to environment variable settings in individual project READMEs.
-
Run the application:
dotnet build dotnet run --project backend/NXTBackend.API/NXTBackend.API.csproj
-
Access the application at
http://localhost:5000.
There are various solutions to setting up a git server but in our case we simply use
Contributions are welcome! Please see our CONTRIBUTING.md for guidelines.
This project is licensed under the MIT License. See the LICENSE file for details.