An open source portal built to manage student’s information at Sao Viet.
- Table of Contents
- Overview
- Technologies
- Architecture
- API development
- Getting Started
- OpenAPI
- CI/CD
- External Services
- Documentation
- Contributing
- Sponsor
- Contact
- License
- References
The SaoViet Portal is a web and app-based platform designed for managers and administrators to efficiently manage student-related data and activities. The platform is intuitive, user-friendly, and accessible from anywhere, at any time. It features advanced security measures, customization options, and is designed to reduce paperwork, save time, and minimize errors.
⚠️Note: This project is currently in development. The project is a university graduation project, and is not intended to be used in production or for commercial purposes. The project is not affiliated with Sao Viet. HUTECH University is not responsible for any damage caused by the use of this project.
- Manage student’s information, including personal information, academic information, and financial information.
- Manage teacher information, including their personal details, qualifications, and employment history
- Manage the different branches of the center, including their location, contact details, and available courses
- Keep track of the center’s financial activities, including income and expenses
- Generate statistical data and reports based on the information stored in the system
- Provides users with interactive chatbot interface that can assist with common queries and tasks
- Follow the center’s teachers and students
(requires IoT devices) - Manage the assets of the center, including equipment, furniture, and other resources
(requires Grantt chart) - Analyze the center’s financial data and generate revenue predictions based on trends and patterns
- Provide more advanced chatbot capabilities, using the latest GPT-4 technology
- Store student data on a secure blockchain platform, ensuring the privacy and security of sensitive information
This project is currently in development. The following is the timeline of the project:
- 2023-03-13: Project started.
- 2023-03-14: Getting business requirements.
- 2023-03-22: Designing the architecture and database.
- 2023-03-26: Developing the portal api.
- 2023-05-06: Developing the backend for frontend.
- 2023-05-08: Writing the api documentation.
- (TBD): Developing the portal web app.
- (TBD): Developing the portal application.
- (TBD): Researching and implementing chatbot.
- (TBD): Developing the chatbot.
- (TBD): Release the the portal.
Sao Viet Portal utilizes various technologies to provide a robust and efficient platform for its users. The following are the technologies used in the application:
- .NET Core 7.0 – A free, cross-platform, open source developer platform for building many different types of applications.
- Bicep – A Domain Specific Language for deploying Azure resources declaratively.
- HCL – A declarative language that is designed to describe infrastructure in a concise way.
- FastAPI – A modern, fast, web framework for building APIs with Python 3.6+ based on standard Python type hints.
- Apache Lucene – A high-performance, full-featured text search engine library written entirely in Java.
- Pytorch – An open source machine learning framework that accelerates the path from research prototyping to production deployment.
- Duende – A free, open source OpenID Connect and OAuth 2.0 framework for ASP.NET Core.
And many more…
The architecture of the application is designed to be highly scalable and flexible, which means that it can handle a large number of users and can easily adapt to changing needs and requirements. The following diagram shows the high-level components of the architecture:
| Name | UseCase | Technology |
|---|---|---|
| User | N/A | N/A |
| Client | A client is a user who uses the application with a web browser or mobile app and desktop app to access the application. | Blazor Server, .NET MAUI |
| Back end for Front end | A back end for front end is a server that is used by the client to access the application. It is responsible for handling requests from the client and returning responses to the client. | ASP.NET Core, Duende IdentityServer 4 |
| Server | A server is a computer that is used to host the application. It is responsible for handling requests from the client and returning responses to the client. It is also responsible for storing data in a database. | ASP.NET Core, FastAPI, Kafka, etc. |
| Database | A database is a collection of data that is stored in a computer. It is used to store data in a structured way so that it can be easily accessed and manipulated. | SQL Server 2022, Apache Lucene, Redis |
| Opentelemetry | Opentelemetry is a set of open source tools that are used to monitor and trace applications. It is used to collect metrics and traces from the application and send them to a monitoring system. | Zipkin, Jaeger, Prometheus, Grafana, ELK Stack, Seq |
| Email System | An email system is a system that is used to send emails. It is used to send emails to users. | Microsoft exchange server |
Learn more about the Clean Architecture here.
Windows 11– The operating system for developing and building this application.WSL 2 - Ubuntu 22.04.2 LTS– The subsystem for Linux to run Linux on Windows.Docker Desktop (Kubernetes enabled)– The containerization platform to run the application.Kubernetes/AKS/Nomad– The container orchestration system to deploy the application.helm– The package manager for Kubernetes to install the application.tye– The tool to run the application locally.Postman/Insomnia/REST Client– The tool to test the application.
.NET Core 7.0– A free, cross-platform, open source developer platform for building many different types of applications.Duende BFF– A free, open source OpenID Connect and OAuth 2.0 framework for ASP.NET Core.EF Core– A modern object-database mapper for .NET.OpenTelemetry– A set of open source tools for monitoring and tracing applications.Serilog– A diagnostic logging library for .NET applications.FluentValidation– A popular .NET library for building strongly-typed validation rules.AutoMapper– A convention-based object-object mapper.Lucene.NET– A high-performance, full-featured text search engine library.FastAPI– A modern, fast (high-performance), web framework for building APIs with Python 3.6+ based on standard Python type hints.Pytorch– An open source machine learning framework that accelerates the path from research prototyping to production deployment.Apache Kafka– A distributed streaming platform.
Blazor– A free, open source framework for building client web apps with .NET..NET MAUI– Build native, cross-platform desktop and mobile apps all in one framework.Docusaurus– Build optimized websites quickly, focus on your content.
Visual Studio 2022– The IDE for developing and building this application.SQL Server 2022– The relational database management system to store data.Laragon– Modern & Powerful – Easy Operation.Resharper– The Visual Studio extension for .NET developers.PyCharm– The Python IDE for Professional Developers.
✅ Info: I have implemented ReDoc with the OpenAPI specification is a great way to generate documentation for your API quickly and easily.
For details on how to use the API, see the Docusaurus documentation.
For the API health check, I have used the ASP.NET Core Health Checks library to monitor the health of the application. The health check endpoint is exposed at /hc or /hc-ui and can be accessed via HTTP GET.
I set up the Elasticsearch, Kibana and Logstash services to collect and analyze logs.
I also used the Seq service to collect and analyze logs.
For the monitoring service, I have used the Prometheus and Grafana services to collect and analyze metrics.
For the tracing service, I have used the Jaeger service to collect and analyze traces.
I also used the, Zipkin service to collect and analyze traces.
- See the changelog at here.
- See documentation on how to use the API at here
- See the wiki at here.
- See code of conduct at here.
- See privacy policy at here.
- See all articles about the project at here.
- See the support at here.
We welcome contributions from the community. If you would like to contribute to this project, please read our contributing guidelines for more information.
Thanks goes to these wonderful people (emoji key)
Nguyen Xuan Nhan 🤔 💻 📖 ⚠️ 🚧 🐛 |
Nguyen Dinh Anh 🧑🏫 💼 📓 |
Wanna be here? Contribute.
- Fork this repository.
- Create your new branch with your feature:
git checkout -b my-feature. - Commit your changes:
git commit -am 'feat: My new feature'. - Push to the branch:
git push origin my-feature. - Submit a pull request.
I’m looking for sponsors to help me maintain and develop this project. By sponsoring my project, you can help to ensure that I have the resources and infrastructure needed to provide the best possible experience for users.
Your support can help to cover the costs associated with hosting, maintenance, and development, as well as provide the resources needed to further improve and enhance my capabilities.
If you are interested in sponsoring this project, please don’t hesitate to reach out to me at here or use button `Sponsor` at the top of this page.
I would be more than happy to discuss the details of how your sponsorship can help to support my ongoing growth and development, and provide you with more information on the benefits and opportunities available to sponsors.
If you have any questions or concerns regarding my services, please don’t hesitate to contact me at here.
If you need to get in touch with my instructor for any reason, please contact him at here.
Whether you have a question about my functionality, need help troubleshooting an issue, or simply want to provide feedback on your experience using my services, I am always happy to hear from users and welcome your input.
Thank you for your interest in my project, and I look forward to hearing from you soon.
The Sao Viet Portal project operates under two distinct licenses. The first license is the MIT License, which governs the project’s codebase. This license permits the use, modification, and distribution of the codebase under certain conditions, as detailed in the MIT file.
The second license is the Attribution 4.0 International License, which applies to the project’s documentation. This license allows for the use, reproduction, and distribution of the documentation provided that proper attribution is given to the original authors. The terms of the Attribution 4.0 International License can be found in the LICENSE-docs file.
It is important to note that Sao Viet Portal is not affiliated with Microsoft, Azure, or any other Microsoft products. The project’s products are developed and copyrighted by Nguyen Xuan Nhan and Nguyen Dinh Anh, with the latter being a lecturer at Hutech University. The Faculty of Information Technology at Hutech University will act as the project evaluation and grading committee.
For further information regarding the project’s copyright, please refer to the COPYRIGHT file. All rights reserved.
- ASP.NET Core in Action, Third Edition (MEAP v06)
- Web Development with Blazor – Second Edition
- Introducing .NET MAUI: Build and Deploy Cross-platform Applications Using C# and .NET Multi-platform App UI
- High-Performance Web Apps with FastAPI: The Asynchronous Web Framework Based on Modern Python
- Infrastructure as Code with Azure Bicep: Streamline Azure resource deployment by bypassing ARM complexities
- Beginning HCL Programming: Using Hashicorp Language for Automation and Configuration
Some useful links:











