ThreeT is a web application designed to streamline work management and collaboration within organizations. It provides features for users to submit daily work status updates, track their work progress, and collaborate with teams. This README will guide you through the setup process for both the backend and frontend of the ThreeT project.
The ThreeT project utilizes the following technologies:
- .NET 7 - Backend framework
- Next.js 13 - Frontend framework
- Next Auth - Authentication library for Next.js
- Postgres - Database
- Clean Architecture with Controller Service and Service Repository pattern - Backend structure
- Mapperly - Mapping library for entity-to-DTO and vice versa
- Entity Framework Core - Database ORM
- OpenID Dict - Using ASP.NET Identity Core for user authentications
- Identity - ASP.NET Core authentication
- Shadcn Components Library - UI component library
- React Hook Forms - Form validation library
- Zod - Data schema and validation library
The ThreeT repository is structured as follows:
- backend: Contains the .NET projects for the API and authentication.
- frontend: Contains the Next.js frontend project.
Before setting up the ThreeT project, ensure you have the following installed:
- Node.js (version 12 or higher)
- A code editor of your choice (e.g., Visual Studio Code, Visual Studio)
- Git
- .NET SDK 7
- Postgres database (optional, as a dev database is provided, ask for connection string from @raulshma)
- Clone the repository:
git clone https://github.com/raulshma/threeT.git
- Open your preferred editor or IDE and navigate to the
backend
directory. - You will find multiple projects in the solution. Two important projects are
ThreeTee.API
andThreeTee.Authentication
. The API project contains all the APIs used by the frontend, and the Authentication project handles the OpenID Dict server and user authentication. - Before running the projects, you need to add the connection string to the user-secrets manager of both the API and Authentication projects. The property names can be found in the
appsettings.json
file of each project. Add the connection string for either the local database or the dev database. - Set the
ThreeTee.Authentication
project as the startup project - Open the terminal and navigate to the
ThreeTee.Infrastructure.Persistence.Npgsql
project. Run the migration command to update the database schema:- If using the package manager console:
update-database
- If using the .NET CLI:
dotnet ef database update
- If using the package manager console:
- Run it using
dotnet run
. The backend should now be up and running.
- Inside the
frontend
directory, open the terminal and executenpm install
to install the required dependencies. - Open the project in your preferred editor or IDE.
- Create a new file in the root directory named
.env.local
and copy the contents from.env.example
. Make any necessary changes to the configuration in the.env.local
file, such as the authentication server URL and resource server URL. - Run the project using the
npm run dev
command.
You should now be able to access the ThreeT application at http://localhost:3000
.
6. Upon accessing the application, you will land on the login page. Use the Single Sign-On (SSO) button to log in with the authentication server.
Congratulations! You have successfully set up the ThreeT project. Feel free to explore its features and functionalities to streamline your work management and collaboration within your organization.
- .NET 7 Documentation
- Entity Framework Core 7.0 What's New
- Next.js Documentation
- Next Auth Getting Started
- Shadcn Components Library Documentation
- Mapperly Repository
- Clean Architecture with .NET
- PostgreSQL
- Entity Framework Core Npgsql Provider
- GitHub Issues - For issue tracking and project management
- Identity