2.7K Star,酷炫抽奖程序开源了

这篇具有很好参考价值的文章主要介绍了2.7K Star,酷炫抽奖程序开源了。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

2.7K Star,酷炫抽奖程序开源了,后端,开源

Hi,骚年,我是大 G,我的公众号「GitHub指北」会推荐 GitHub 上有趣有用的项目,一分钟 get 一个优秀的开源项目,挖掘开源的价值。

你们公司今年年会开了吗?今年很幸运,居然中了 1000 元现金红包。

作为程序员,对于抽奖程序倒是很感兴趣,很酷炫,面向 GitHub 开发,找到同样效果的,推荐给大家,这个年会抽奖程序,3D 球体抽奖,支持奖品信息配置,参与抽奖人员信息Excel导入,抽奖结果Excel导出。

立即体验一下: https://moshang-xc.github.io/lottery/

效果预览

2.7K Star,酷炫抽奖程序开源了,后端,开源
2.7K Star,酷炫抽奖程序开源了,后端,开源
2.7K Star,酷炫抽奖程序开源了,后端,开源

功能描述

  1. 可将抽奖结果进行保存实时下载到 excel 中
  2. 已抽取人员不在参与抽取,抽中的人员不在现场可以重新抽取
  3. 刷新或者关掉服务器,会保存当前已抽取的数据,不会进行数据重置,只有点击界面上的重置按钮,才能重置抽奖数据
  4. 每次抽取的奖品数目可配置
  5. 抽取完所有奖品后还可以继续抽取特别奖(例如:现在抽取红包,追加的奖品等),此时默认一次抽取一个

技术

技术:Node + Express + Three.js

后台通过Express实现

前端抽奖界面通过Three.js实现 3D 抽奖球,引用了Three.js的官方 3D 示例

安装

git clone https://github.com/moshang-xc/lottery.git

cd lottery

# 服务端插件安装
cd server
npm install

# 前端插件安装
cd ../product
npm install

# 打包
npm run build

# 运行
npm run serve

# 开发调试
npm run dev

目录结构

Lottery
├── product
│   ├── src
│   │   ├── lottery
│   │   │   └── index.js
│   │   ├── lib
│   │   ├── img
│   │   ├── css
│   │   └── data
│   ├── package.json
│   └── webpack.config.js
├── server
│   ├── config.js
│   ├── server.js
│   └── package.js
  1. product 为前端页面目录
  2. package.josn web 项目配置文件
  3. webpack.config.js 打包配置文件
  4. server 为服务器目录
  5. config 为奖品信息的配置文件

配置信息

抽奖用户信息配置

抽奖用户信息在**server/data/user.xlsx**文件中,按文件格式进行填充,不能修改文件名和列头

奖品信息配置

奖品的配置信息填写在server/config.js文件中,不能修改文件名。

其中奖品 prizes 的配置描述如下:

参数 值类型 描述
type Number 奖品类型,唯一标识,0 是默认特别奖的占位符,其它奖品不可使用
count Number 奖品数量
text String 奖项名称
title String 奖品描述
img String 奖品的图片地址,图片在img目录下
// 奖品信息,第一项为预留项不可修改,其他项可根据需要修改
let prizes = [{
        type: 0,
        count: 1000,
        title: "",
        text: "特别奖"
    },
    {
        type: 1,
        count: 2,
        text: "特等奖",
        title: "神秘大礼",
        img: "../img/secrit.jpg"
    },
    {
        type: 2,
        count: 5,
        text: "一等奖",
        title: "Mac Pro",
        img: "../img/mbp.jpg"
    }
    ...
];
奖品每次抽取个数配置

EACH_COUNT用于配置每次的抽奖个数,与 prizes 奖品一一对应,例如上面的奖品配置对应的抽奖个数配置如下:

const EACH_COUNT = [1, 1, 5];

如上配置,表示一次抽取的奖品个数顺序为:特别奖每次抽一个,特等奖每次抽一个,一等奖每次抽五个

企业标识配置

该标识用于显示在抽奖卡片上。

const COMPANY = "MoShang";

Docker 部署方案

概述

该项目现在支持使用 Docker 进行部署。Docker 是一个轻量级的容器化平台,可以让您快速地部署、测试和运行应用程序。本文档将向您介绍如何使用 Docker 部署该项目。

系统要求

在您开始使用 Docker 部署该项目之前,您需要确保已经安装了以下软件:

  • Docker(请参阅 Docker 的官方文档以获取安装说明)
  • Docker Compose
安装
  1. 下载并解压该项目的源代码。

  2. 进入解压后的项目目录。

  3. 执行以下命令以构建 Docker 镜像:

    ./build.sh [TAG]
    

这将使用 Dockerfile 构建一个名为lottery:[TAG]的 Docker 镜像。如果未指定标签,则默认使用latest标签。

  1. 执行以下命令以在本地运行容器:

    ./dev.sh [TAG]
    

这将启动容器并将应用程序部署在 Docker 容器中。您可以在本地进行测试,确保一切正常。请注意,容器内部的应用程序将会监听 8888 端口和 443 端口。

  1. 执行以下命令以将 Docker 镜像标记并推送到远程 Docker 仓库:

    ./tagpush.sh [TAG]
    

这将为 Docker 镜像打上标签并将其推送到远程 Docker 仓库,如果要使用 docker 官方的 hub 请先在https://hub.docker.com/新建自己的repo,然后将文件中的用户名改为自己。请注意,[TAG]应替换为您要使用的标签名称。

  1. 确保有一个名为docker-compose.yml的文件,并添加以下内容:

    version: '3.8'
    
    volumes:
      lottery_log:
    
    services:
      lottery:
        container_name: lottery
        expose:
          - 8888
        ports:
          - "28458:8888"
          - "443:443"
        volumes:
          - "lottery_log:/var/log"
        image: "panda1024/lottery:[TAG]"
        restart: always
    

请注意,[TAG]应替换为您推送到 Docker 仓库的镜像名称。

  1. 在服务器上的项目目录中运行以下命令以使用 Docker Compose 部署应用程序:
	docker-compose up -d

这将启动一个 Docker Compose 堆栈,并将该项目部署在其中。请注意,此处将容器的 8888 端口和 443 端口映射 到了服务器上的 8888 端口和 443 端口。如果您希望使用其他端口,请相应地更改docker-compose.yml文件。

源码

在公众号「GitHub指北」后台发消息「抽奖」即可获取。文章来源地址https://www.toymoban.com/news/detail-798907.html

到了这里,关于2.7K Star,酷炫抽奖程序开源了的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 开源不到 48 小时获 100k star 的 Github 开源项目大全

    目录 1. 本周特推 1.1 GPT 专场 1.2 推特推荐算法:the-algorithm 2. GitHub Trending 周榜 2.1 音频分析:audioFlux 2.2 逆向工程:ghidra 2.3 AI 编辑器:cursor 2.4 轻量级搜索引擎:meilisearch 2.5 文本到视频:Tune-A-Video 3. HelloGitHub 热评 3.1 SICP 学习资料:Learning-SICP 3.2 内存数据库:dragonfly 1. 本周特

    2024年02月07日
    浏览(67)
  • 制作酷炫可视化大屏利器--分享10种比较流行的开源免费的图表库

    在开发可视化项目的过程中往往涉及到可视化图表, 多酷炫的报表, 大屏, 都用了非常多的图表, 接下来我和大家分享一些比较流行的开源免费的图表库. 1,Frappe Charts Frappe Charts - 免费开源、轻量无依赖的 web 图表库,简单不臃肿,支持搭配 Vue / React 等框架使用,一个小巧简单

    2024年02月08日
    浏览(39)
  • Star History 月度开源精选|2023 年 6 月

    上一期 Star History 月度精选是写给市场、运营人员的,而这一期回归到 DevTools 类别,我们六月发现了好一些开发者可以用的不错工具! 还记得 Supabase “Build in a weekend” 的广告词吗!AI Getting Started 是一个适合用来做周末项目的 AI 入门工具包,由 star history 之父 timqian 和 a16z

    2024年02月17日
    浏览(38)
  • 11k+star 开源笔记应用真香 centos部署教程

    life edited this page on Jul 21, 2017 · 10 revisions  Pages 26 Home How to develop leanote 如何开发leanote How to install leanote on Ubuntu? How to Upgrade Leanote Install Mongodb leanote api leanote api en leanote binary installation on Mac and Linux (En) Installation Overview: 1. Download the binary file of Leanote 2. Install the database -- Mong

    2024年02月02日
    浏览(38)
  • Star History 月度开源精选|Llama 2 及周边生态特辑

    7 月 18 日,Meta 发布了 Llama,大语言模型 Llama 1 的进阶版,可以自由免费用于研究和商业,支持私有化部署。 所以本期 Star History 的主题是:帮助你快速把 Llama 2 在自己机器上跑起来的开源工具,无论你的机器是什么! Llama 本身是个开源的基础大语言模型 (LLM),由网上公开可

    2024年02月11日
    浏览(39)
  • 20.1K Star!Notion的开源替代方案:AFFiNE

    Notion这款笔记软件相信很多开发者都比较熟悉了,很多读者,包括我自己都用它来记录和管理自己的笔记。今天给大家推荐一个最近比较火的开源替代方案:AFFiNE。目前该开源项目已经斩获20.1K Star,热度非常的高,下面一起来认识一下这个继Notion之后,被热捧的开源软件吧。

    2024年02月16日
    浏览(44)
  • Star 8K+,使用.NET开发的开源NoSQL数据库

    LiteDB 是一个轻量级、快速、易用的 .NET NoSQL 嵌入式数据库,完全用 C# 托管代码开发,并且是免费和开源的。它非常适合在移动应用(Xamarin iOS/Android)和小型的桌面/Web 应用中使用。 简单易用的 API,类似于 MongoDB 100% C# 代码,支持 .NET 4.5 / NETStandard 1.3/2.0,其核心代码只有不到

    2024年01月21日
    浏览(50)
  • 40K+Star,Mall电商实战项目开源,附源码、教程合集

    最近看了下我的Github,发现mall项目已经突破40K+Star,有点小激动!记得去年8月的时候mall项目刚过20K+Star,时隔1年多已经增长到了40K+Star。今天跟大家聊聊mall项目的发展历程,希望对大家有所启发! Github上面有个Java Topic排行榜,mall项目目前排在第9位,有很多小伙伴早就发现

    2024年03月18日
    浏览(64)
  • 31K star!替换Postman ,开源优雅的API工具:Insomnia

    API 调试工具大家第一个想到的肯定是Postman,但是这几年Postman在国内越来越难用,很多人也都在考虑找一个替代品。 今天我们来推荐一个可以替换掉Postman的 API 工具,他开源、支持本地使用,也更加轻量、更加优雅, 目前在GitHub已超过31K Star,他就是:Insomnia。 Insomnia 是一个

    2024年02月03日
    浏览(48)
  • 69.9K Star,最强开源内网穿透工具:frp

    作为一名开发者,有很多场景需要用到内网穿透,比如:我们在接入一些大平台做第三方应用时,在本地开发微信公众号工具的时候需要让微信平台能否访问到本地提供的接口。除此之外,还有很多其他场景,也会用到,比如:把放在家里的NAS或服务器暴露到公网上,这样在

    2024年02月14日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包