openreservation / reservationserver Goto Github PK
View Code? Open in Web Editor NEW预约系统 ReservationSystem powered by asp.net core
Home Page: https://reservation.weihanli.xyz
License: MIT License
预约系统 ReservationSystem powered by asp.net core
Home Page: https://reservation.weihanli.xyz
License: MIT License
SentryProvider
for Microsoft.Extensions.LoggingGeetestValidation
refactGoogleRecaptchaHelper
现在演示项目部署需要的环境有点多,不能直接拿来用,需要精简一下,增加一个分支维护一个简化的版本
单机简易版环境:
多机可分布式部署版环境:
Rename project name to OpenReservation
, ActivityReservation
should not be used anymore
你的项目不继续更新了吗
update angular client to angular 9
add pwa support
小程序支持联系客服,客服消息处理(自动回复
add gRPC API support
后台预约管理增加导出最近一段事件活动室预约信息(时间段可选)
大佬可以出个完整的教程么?
不用docker
Xunit.DependencyInjection
can be used for writing better dependency injection code
see more https://github.com/pengweiqhca/Xunit.DependencyInjection
预约时间段逻辑修改,预约时间段与要预约的活动室进行关联
git clone 项目,然后在项目根目录下sudo docker build -t booking:1 . ,完成之后,
~/github/ActivityReservation$ sudo docker run -p 80:80 booking:1
Unhandled exception. System.Threading.Tasks.TaskCanceledException: The operation was canceled.
at System.Net.Http.ConnectHelper.ConnectAsync(String host, Int32 port, CancellationToken cancellationToken)
at System.Net.Http.HttpConnectionPool.ConnectAsync(HttpRequestMessage request, Boolean allowHttp2, CancellationToken cancellationToken)
at System.Net.Http.HttpConnectionPool.CreateHttp11ConnectionAsync(HttpRequestMessage request, CancellationToken cancellationToken)
at System.Net.Http.HttpConnectionPool.GetHttpConnectionAsync(HttpRequestMessage request, CancellationToken cancellationToken)
at System.Net.Http.HttpConnectionPool.SendWithRetryAsync(HttpRequestMessage request, Boolean doRequestAuth, CancellationToken cancellationToken)
at System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
at Microsoft.Rest.RetryDelegatingHandler.<>c__DisplayClass11_0.<b__1>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at Microsoft.Rest.RetryDelegatingHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
at System.Net.Http.HttpClient.FinishSendAsyncBuffered(Task1 sendTask, HttpRequestMessage request, CancellationTokenSource cts, Boolean disposeCts) at Microsoft.Azure.KeyVault.KeyVaultClient.GetSecretWithHttpMessagesAsync(String vaultBaseUrl, String secretName, String secretVersion, Dictionary
2 customHeaders, CancellationToken cancellationToken)
at Microsoft.Azure.KeyVault.KeyVaultClientExtensions.GetSecretAsync(IKeyVaultClient operations, String secretIdentifier, CancellationToken cancellationToken)
at Microsoft.Extensions.Configuration.AzureKeyVault.AzureKeyVaultConfigurationProvider.LoadAsync()
at Microsoft.Extensions.Configuration.AzureKeyVault.AzureKeyVaultConfigurationProvider.Load()
at Microsoft.Extensions.Configuration.ConfigurationRoot..ctor(IList`1 providers)
at Microsoft.Extensions.Configuration.ConfigurationBuilder.Build()
at Microsoft.Extensions.Hosting.HostBuilder.BuildAppConfiguration()
at Microsoft.Extensions.Hosting.HostBuilder.Build()
at ActivityReservation.Program.Main(String[] args) in /src/ActivityReservation/ActivityReservation/Program.cs:line 11
现在每创建一个预约项目都需要配置一个预约的时间段,对于大部分预约时间段都一样的预约项目来说,如果我们能够支持一个默认的预约时间段配置的话就会很方便,就不必一个一个配置了,会高效很多
reservation-server pod启动不了,使用openreservation/reservation-server:dev 镜像,用 kubectl logs 查看报错提示
Unhandled exception. System.TypeLoadException: Method 'Create' in type 'Pomelo.EntityFrameworkCore.MySql.Query.ExpressionVisitors.Internal.MySqlSqlTranslatingExpressionVisitorFactory' from assembly 'Pomelo.EntityFrameworkCore.MySql, Version=3.1.1.0, Culture=neutral, PublicKeyToken=2cc498582444921b' does not have an implementation.
极验验证依赖服务器端session之类的处理,不够友好,不够现代化,改成腾讯验证,
接入文档: https://007.qq.com/captcha/#/gettingStart
https://sentry.io/organizations/weihanli/issues/1449528537/?referrer=github_plugin
System.InvalidOperationException: The LINQ expression 'DbSet<ReservationPlace>
.Where(r => !(r.IsDel))
.Any(r => r.PlaceName.ToUpperInvariant().Equals(__ToUpperInvariant_0) && r.IsDel == False)' could not be translated. Either rewrite the query in a form that can be translated, or switch to client evaluation explicitly by inserting a call to either AsEnumerable(), AsAsyncEnumerable(), ToList(), or ToListAsync(). See https://go.microsoft.com/fwlink/?linkid=2101038 for more information.
Module "WeihanLi.EntityFramework.EFRepository`2", in Exist
Boolean Exist(System.Linq.Expressions.Expression`1[System.Func`2[TEntity,System.Boolean]])
File "/src/ActivityReservation/ActivityReservation.AdminLogic/Controllers/ReservationPlaceController.cs", line 103, in AddPlace
Microsoft.AspNetCore.Mvc.ActionResult AddPlace(System.String)
Module "(unknown)", in lambda_method
System.Object lambda_method(System.Runtime.CompilerServices.Closure, System.Object, System.Object[])
File "/src/ActivityReservation/ActivityReservation.Helper/Extensions/PerformanceLogExtension.cs", line 23, in MoveNext
Void MoveNext()
File "/src/ActivityReservation/ActivityReservation.Helper/Extensions/RequestLogExtension.cs", line 30, in MoveNext
Void MoveNext()
...
(57 additional frame(s) were not displayed)
The LINQ expression 'DbSet<ReservationPlace>
.Where(r => !(r.IsDel))
.Any(r => r.PlaceName.ToUpperInvariant().Equals(__ToUpperInvariant_0) && r.IsDel == False)' could not be translated. Either rewrite the query in a form that can be translated, or switch to client evaluation explicitly by inserting a call to either AsEnumerable(), AsAsyncEnumerable(), ToList(), or ToListAsync(). See https://go.microsoft.com/fwlink/?linkid=2101038 for more information.
Add GraphQL with HotChocolate
我现在发现几个的bug
1 禁用时间段存在比较严重的bug,第一,设置禁用时间段之后,发现后面的可选日期都被禁用,而前面的可选日期不被禁用,例如禁用日期设置为2017.12.15-2017.12.17,测试发现15号和16号均可以预约,而17号之后,包括18号19号都无法预约
2 禁用时间段无法删除
3 公告系统我在我这边怎么也无法保存,保存之后打开页面提示404错误,你的demo似乎是好的,不知道这是什么问题
基于码云的 FileProvider
add localization support so that we could extend more language support
比如通过微信扫码的方式在手机上申请提交,因为电子版有时并不靠谱,也可能是别人假冒提交的,是否可以增加个手签名的地方,在提交的预约后面?
use helm v3 to package k8s deploy scripts
split the project into
currently can not get the accurate IP, it always the internal IP, it should update
You may refer to ForwardHeaders
https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/proxy-load-balancer?view=aspnetcore-2.2
Currently, the project had upgraded to .NET5, but the MySql database provider is still .NET Core 3.1 provider.
Since the MySQL database provider for efcore 5.0 is still in preview, use preview version for now
更通用的预约流程,需求收集
migrate to asp.net core 3.0
增加组织的概念,每个组织可以建立一套自己的预约
Add API for management, so that we could implement management in the angular client app
It's time to move it to .NET 6
新的活动室预约客户端, 使用 angular + material 构建,试用地址 https://reservation-preview.weihanli.xyz/
有几个问题待处理待优化
将配置信息数据从 AzureKeyVault 迁移到 kubernetes
Sqlite database is really easy to get started, add support for sqlite support
docker拉下来
docker pull weihanli/activityreservation
运行
docker run -d -p 8900:80 --name=reservation weihanli/activityreservation
为什么镜像没生效,镜像自己就停了呢
活动室预约先预约活动室再选择预约日期再选择预约时间段
目前是先选择预约日期,改为先选择要预约的活动室,这样以后可以每个活动室配置不同时间段的预约,比如A活动室最多可以预约一周内的使用,B活动室最多可以预约两周~
欢迎补充使用本项目搭建的应用或站点
add api test project
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.