• .NET
  • A portal built in web-base and app-based for managing students at Sao Viet.

    Sao Viet Portal

    An open source portal built to manage student’s information at Sao Viet.

        

    Table of Contents

    Overview

    Introduction

    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.

    (back to top)

    Features

    •  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

    (back to top)

    Timeline

    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.

    (back to top)

    Technologies

    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…

    (back to top)

    Architecture

    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

    (back to top)

    API development

    Learn more about the Clean Architecture here.

    (back to top)

    Getting Started

    💻 Infrastructure

    🛠️ Backend

    • .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.

    🖥️ Frontend

    • 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.

    📦 Optional tools

    • 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.

    (back to top)

    OpenAPI

    ✅ 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.

    (back to top)

    CI/CD

    (back to top)

    External Services

    🧑‍⚕️ Health Check

    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.

    📝 Logging

    I set up the ElasticsearchKibana and Logstash services to collect and analyze logs.

    I also used the Seq service to collect and analyze logs.

    📊 Monitoring

    For the monitoring service, I have used the Prometheus and Grafana services to collect and analyze metrics.

    📈 Tracing

    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.

    (back to top)

    Documentation

    • 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.

    (back to top)

    Contributing

    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 Xuan Nhan

    🤔 💻 📖 ⚠️ 🚧 🐛
    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.

    (back to top)

    Sponsor

    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.

    (back to top)

    Contact

    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.

    (back to top)

    License

    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.

    (back to top)

    References

    Some useful links:

    Để lại một bình luận

    Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

    10 mins