Themis web v2.1 Design by CBHT Group

Phiên bản mới nhất Themis web v2.1

demo: http://themis.kienthuc24h.com

Themis web là giải pháp giúp nộp bài trực tuyến trong mạng LAN hoặc WAN để phần mềm chấm bài Themis DSAP chấm.

themis

 

1. Hướng dẫn cài đặt

a. Download

– Đầu tiên các bạn cần tải phần mềm XAMPP windows để có thể chạy được mã nguồn

Link download XAMPP

Ngoài việc dùng XAMPP bạn có thể dùng Uniform Server sẽ nhẹ hơn rất nhiều.

– Tải mã nguồn Themis web:

link download Themis web v1.1 (04/07/2015 đã fix lỗi không thể đăng xuất)

link download Themis web v2.0 (26/09/2016)

link download Themis web v2.1 (30/07/2017 fix lỗi Undefined, Warning, lỗi trên php 7)

Phiên bản 2.1 thích hợp dùng với Uniform Server – php 7 

Vui lòng đọc kỹĐiều khoản sử dụng về bản quyềntrước khi tải mã nguồn

Themis web v1.0 là phiên bản đầu tiên mình viết, đây chỉ là giải pháp nên tất nhiên nó còn nhiều hạn chế về bảo mật, trang trí và tính tiện dụng. Mình sẽ cập nhật thêm ở những lần sau.

b. Cài đặt

– Sau khi tải xong, mình bắt đầu cài đặt XAMPP:

Các bạn lưu ý trước khi cài đặt XAMPP hãy chắc chắn rằng mình đã tắt skype, vì XAMPP ko thể bật nếu chạy skype.

Đường dẫn mình cài đặt XAMPP là C:xampp

Sau khi cài đặt Xampp xong các bạn vào http://localhost/ nếu xuất hiện như trên video hướng dẫn có nghĩa là bạn đã cài đặt thành công Xampp.

Giờ mình tiếp tục cài mã nguồn themis web

Các bạn giải nén lấy code bên trong.

Vào thư mục C:/xampp/htdocs xóa hết tất cả trong đây. và chép toàn bộ code themis web vào.

Giờ mình sẽ cài đặt cơ sở dữ liệu cho Themis web. Các bạn vào http://localhost/phpmyadmin. bấm tạo cơ sở dữ liệu như trong video, mình đặt tên là themis.

Tiếp đến các bạn import database vào. sau đó F5 trang http://localhost/ nếu được như trên video là ok.

Các bạn lưu ý là đặt tên cơ sở dữ liệu phải là themis thì mới dùng được, còn nếu các bạn dùng phần mềm khác XAMPP và đặt tên khác thì vui lòng config lại trong file mysql.php

Nếu bạn gặp lỗi sau Undefined index có thể khắc phục bằng cách bên dưới hoặc dùng ngay phiên bản mới nhất 2.1 đã được khắc phục

Để khắc phục các bạn tìm file PHP.ini (nó nằm ở c:/Xampp/php/php.ini)và thay đổi theo các thông số dưới đây:

sau khi chỉnh xong các bạn bấm save lại. Sau đó khởi động lại Xampp. Như vậy là đã cài đặt xong.

2. Hướng dẫn cấu hình Themis web để sử dụng

a. Add problem

Trước tiên các bạn phải chuẩn bị đề bài và bộ test, các thư mục chứa bài làm, như thông thường.

Bây giờ mình sẽ bật themis, mình sẽ add contest như thông thường.

Tiếp đến mình sẽ thiết lập cho themis web, ở phần mềm themis các bạn nhấn F11, ở ô thư mục nộp bài trực tuyến các bạn chọn đường dẫn đến folder nopbai trong code themis web.

Giờ chúng ta sẽ tiến hành add đề bài, copy đề bài có kiểu file là DOC hoặc PDF vào thư mục debai trong code themis web

Lưu ý: Tên đề bài không được có kí tự đặc biệt nào ngoại trừ 1 dấu chấm duy nhất phân biệt kiểu file. Vì đây chỉ là giải pháp nên chỉ có thế 🙂

Như vậy là xong, giờ mình sẽ đăng ký tài khoản và nộp bài thử.

Tài khoản admin mặc định là admin/admin

Lưu ý là những bài nào đang chờ chấm thì thí sinh dù nộp 100 bài như vậy thì hệ thống sẽ chỉ chấm bài nộp cuối cùng và các bài trước đó được nộp đang chờ sẽ bỏ qua. nên không có chuyện spam submit được 🙂

b. Thành viên và logs điểm

Để xóa thành viên các bạn vào phpmyadmin chọn table members nhấn vào nút delete và ok là xong.

để xóa hết kết quả bảng rank các bạn chỉ cần xóa tất cả file trong /nopbai/logs/. Tuy nhiên thư mục bài làm của thí sinh trong phần mềm themis sẽ còn lưu code.

– Để xem đề bài các bạn vào bảng điểm.

3. Câu hỏi

1. Các máy tính trong mạng LAN có thể truy cập themis web bằng cách nào?

– Đây là điều mà mình quên hướng dẫn trong lúc quay video clip, bạn vào Run (nút Windows + R) sau đó gõ CMD và nhấn enter, sau đó gõ ipconfig, nhìn dòng IPv4 Address.. các máy tính trong mạng LAN có thể vào themis web bằng cách gõ http://(ip đó).

2. Themis web có cập nhật những phiên bản tốt hơn không?

– Có, mình sẽ tiếp tục cập nhật nếu trong thời gian tới themis web được áp dụng rộng rãi và nhu cầu các tính năng bảo mật ngày càng nhiều mình sẽ viết bản cập nhật.

3. Mình muốn mở cuộc thi online trên cả mạng WAN có được không?

– Được, vấn đề này ít người quan tâm nên mình không viết hướng dẫn, tuy nhiên nếu bạn cần có thể comment dưới đây, mình sẽ hướng dẫn.

– Tuy nhiên các bạn có thể tìm hiểu về việc mở port 80 trong modem wifi. Thường là mục port following trong các modem mạng. Hoặc bạn có thể nhấc máy lên và gọi cho nhà mạng để được họ hỗ trợ mở port.

4. Minh có thể thiết lập themis web chấm bài bằng nhiều máy chấm cùng lúc không?

– Đây là điều hoàn toàn làm được, các vui lòng comment mình sẽ hướng dẫn.

5. Máy chấm của mình bị quá tải và shutdown, vì sao vậy?

– Điều này có thể là do bạn bị tấn công DDOS.

6. Khi tôi bấm vào trang rank, hệ thống bị chuyển hướng hoặc các vấn đề khác, làm thay đổi trang, làm sao để khắc phục?

– Điều này có thể là mã nguồn đã bị hack, có thể là thành viên đã chèn đoạn code HTML vào phần username, bạn có thể vào phpmyadmin để xem và xóa đoạn mã đó. Vì themis web v1.0 chỉ là giải pháp tạm thời trong mạng nội bộ nên mình chưa fix 🙂 Nếu có thời gian mình sẽ fix ở những bản nâng cấp sau 🙂

– Ở phiên bản themis web 2.0 trở lên mình đã bổ sung tính năng không cho phép thành viên tự đăng kí account và chỉnh sửa thông tin. Bạn có thể áp dụng biện pháp này.

Có thắc mắc gì các bạn vui lòng comment dưới đây, mình sẽ giải đáp

42 thoughts on “Themis web v2.1 Design by CBHT Group

    • windows 8 thì em phải tắt services world wide web rồi bật lại xampp,
      cách làm
      – nhấn tổ hợp phím: Windows + R để vào hộp thoại Run.
      – Nhập từ khóa: services.msc và nhấn Enter
      – Cửa sổ Service hiện ra, bạn kéo xuống dưới cùng
      – Chọn Word Wide Web Publishing Service, click phải chuột và chọn Stop

  1. Xin chào!

    Xin cám ơn vì đã chia sẻ chương trình này. Để tránh thông báo “Undefined index…” bạn nên sử dụng hàm isset để kiểm tra phần tử trong mảng trước khi dùng nó hoặc khởi tạo các biến trước khi dùng (cái này mình nghĩ là bạn biết nhưng chắc lười check ^^)

    Mình có fix một số chỗ trong code (thấy chỗ nào làm chỗ đó, chắc là còn sót), bạn nào cần thì downlaod về dùng nhé.
    https://mega.nz/#!CYkUkJqJ!3x5dvbaM5capiuLD90KlO1uUH4utuIpWyxY1wssOsiM

    Về vấn đề dùng Skype khi chạy webserver, mình có thể thiết lập trong Skype như thế này: Tool, Options, Advanced settings, Connection rồi uncheck mục Use port 80 and 443… rồi save và restart Skype. Sau này có thể dùng Skype chung với Webserver mà không có vấn đề gì.

    Một số ý kiến đóng góp cho vui nhà vui cửa nếu có gì mong mọi người bỏ qua. Thân.

  2. Chào bạn! Rất cảm ơn bạn vì chương trình này! Mình muốn cải tiến nộp bài qua mạng WAN theo ý tưởng sau : Xây dựng trang taibai.php chạy với quyền admin tại máy có cài themis với hai chức năng
    1. Kiểm tra xem có tập tin .pas trong thư mục /nopbai trên web hay không. Nếu có thì tự động tải về thư mục quy định sẵn trên máy ví dụ d:baicham (đây là thư mục được chọn chấm trực tuyến của themis).
    2. Kiểm tra xem trong thư mục d:baichamlogs có tập tin không. Nếu có thì tự động tải lên thư mục /nopbai/logs trên web.
    Với ý tưởng như vậy nhưng mình còn vướng chỗ viết code tự động tải file từ một thư mục trên web xuống một thư mục trên máy và ngược lại vì mình chưa biết dùng câu lệnh nào! Mong bạn chỉ giúp với! Cảm ơn bạn nhiều!

    • Hi bạn, ý tưởng này cũng rất giống ý tưởng lúc trước của mình, nhưng rất tiếc là mình không biết, thường thì down và upload file trong môi trường web bạn có thể sử dụng FTP, lúc trước mình có tìm 1 số phần mềm auto sync nhưng vẫn còn nhiều hạn chế 🙂
      Như mình đã nói ở trên, mình tạo ra Themis web chỉ mang tính giải pháp thôi, nên thật ra code và giao diện còn thô sơ và chưa chuẩn mực cho lắm 🙂
      Hồi trước mình có mở port máy nhà để các bạn khác chấm thử khá hiệu quả, tuy nhiên để tổ chức contest lớn, bạn có thể dùng VPS windows 🙂
      Rất hi vọng bạn có thể viết được chương trình giúp auto sync FTP 😀 mình sẽ giới thiệu trên kienthuc24h.com
      Thân.

      • Cảm ơn bạn đã góp ý! Mình tính viết chương trình tự động odanload và upload bằng c# khi có thời gian. Còn trong PHP khi mình muốn nhấn vào một button thì sẽ tải file baitap.doc từ thư mục baitap trên web vào một thư mục baitap trên ổ D thì có cách gì không vậy bạn!

      • Cảm ơn bạn đã góp ý! Mình tính viết chương trình tự động download và upload bằng c# khi có thời gian. Còn trong PHP khi mình muốn nhấn vào một button thì sẽ tải file baitap.doc từ thư mục baitap trên web vào một thư mục baitap trên ổ D thì có cách gì không vậy bạn!

        • Bấm vào nút nó tự tải về thì theo mình là làm được đó bạn 🙂
          p/s: bạn vào profile chỉnh lại email để nhận được thông báo khi có phản hồi nhé

          • Mình có viết file taibai.php như thế này :

            Nhưng mà khi mình thực hành như thế này :
            – Máy 1 mình cài gói xampp thành webserver và chép file taibai.php này vào thư mục htdocs khi chạy thì sẽ tải được file vào ổ D.
            – Bây giờ ở tại máy 2 nối cùng mạng lan mình truy cập vào web ở máy 1 chạy file này thì nó lại lưu vào ổ D của máy 1 bạn à. Ý mình là muốn tải nó vào ổ D của máy 2 cơ, vì mai mốt mình up web lên server thì coi như là máy 1, máy ở nhà mình mở themis thi xem như là máy 2.

          • mình hiểu ý bạn rồi, hoặc là bạn viết php khi bấm vào button nó tự hiện khung download file bài, trog google chorme có tính năng tự động save ở vị trí đặt sẳn đó. mà mình thấy như thế này không hiệu quả lắm 🙂 hoặc là bạn mở port cho mạng WAN đó, r trỏ domain về IP?
            Mà bạn định mở contest online hả? bạn làm bên trang nào nhỉ 🙂

  3. Mình chỉ là tay ngang thôi, trình độ còn gà mờ lắm! Viết chủ yếu để học hỏi thôi! Mình tình mỗi khi nộp bài thì tên bài sẽ được lưu vào file danhsach.txt. Sau đó tại máy cài themis ở nhà mình sẽ cũng lập localhost và tạo trang thubai.php dựa vào file danh sách dùng hàm file_put_contents và file_get_contents để lấy nội dung các file bài làm trên máy chủ web lưu vào thư mục chấm trực tuyến ở localhost. Ý tưởng vậy thôi mình sẽ viết thứ, khi nào chạy được mình gửi bạn xem thử góp ý nha!

  4. Bạn ơi cho mình hỏi, sao mình làm hết tất cả theo hướng dẫn, thì nộp bìa đc, chấm bài đc, nhưng nó ko cập nhật điển trên trang Rank mà vẫn cứ báo là chưa nộp bài

    • Hi bạn, không biết bạn có thư mục Logs trong /nopbai/ chưa nhỉ? nếu chưa có hãy tạo lại, và bạn cũng lưu ý là để chuẩn nhất, thì ko nên đổi tên các thư mục nhé, nếu vẫn chưa chấm được bạn có thể liên hệ mình,
      http://facebook.com/miticc06 mình sẽ hỗ trợ bạn qua teamview nếu bạn muốn nhé 🙂
      Thân.

  5. Chào bạn! Mình thấy trang Themisweb của bạn viết rất có ích và đúng là giải pháp cho các cuộc thi lập trình, mình cũng đã dùng nó để cho HS thi một vài cuộc thi lập trình ở địa phương rất tiện lợi cho việc chấm và thu bài. Tuy nhiên, khi cùng lúc có hơn 10 user đăng nhập đến trang web để nộp bài thì mình thấy có hiện tượng Giật (điểm và các thông báo điểm nó chớp chớp) và các máy thường xuyên bị mất kết nối với database. Bạn có giải pháp nào cho vấn đề này ko ah

  6. Chào bạn! Trang web chấp thi lập trình trực tuyến của bạn viết đúng là 1 giải pháp cho các cuộc thi lập trình, việc chấm và thu bài rất tiện lợi. Mình cũng đã sữ dụng trang web của bạn viết để tổ chức một vài cuộc thi lập trình nhỏ. Tuy nhiên khi có hơn 10 user cùng đăng nhập vào và nộp bài thì trang web ở máy user rất giật (các điểm đã chấm cứ chớp chớp) và rất hay hiện thông báo ko thể kết nối đến database. Bạn có giải pháp nào chó vấn đề này chưa ạ

    • Hi bạn, mình rất vui khi giải pháp trên đã được ứng dụng ở nơi của bạn.
      – Thật ra phiên bản v.1.0 là phiên bản đầu tiên mình ra nên còn nhiều hạn chế, hiện tại mình đã có bản v.2.0 đẹp và cải tiến nhiều hơn, nhưng mình chưa public. nếu bạn có nhu cầu hãy email về địa chỉ dangminhtien06@gmail.com
      – còn tình trạng mất kết nối cơ sở dữ liệu mình chưa gặp bao giờ nên cũng không biết, tuy nhiên mình nghĩ là máy chủ của bạn bị yếu, và mặc định là bảng rank auto update 1s 1 lần nên làm cho máy chủ phải xử lí liên tục. Không biết bạn có thể gửi mình full zip file htdocs và cơ sở dữ liệu không, để mình kiểm tra lại.
      Thân 🙂

  7. Em cài đặt thành công trên server rồi, cảm ơn CBHT team về sản phẩm này.
    Vẫn còn một tí bất tiện ở chỗ bảng rank lệ thuộc vào thư mục đề bài, còn lại rất ok.
    Cho em hỏi là em được phép chỉnh sửa mã nguồn một tí được không, tất nhiên là phi thương mại, để tự train thôi :v

    • Chào bạn, bạn thiết lập các thông số sau:

      error_reporting = E_ALL
      display_errors = off
      log_errors = off

      tại file này c:/Xampp/php/php.ini

  8. Mình cài được rồi bạn co thể cho mình video dể các trong toàn manjng lan có thể truy cập vào web để nộp bài được ko? xin cam ơn bạn trước nha

    • để các máy trong mạng lan truy cập được, bạn vào cmd, gõ vào ipconfig, máy sẽ hiện địa chỉ ip của bạn trong mạng Lan, lúc này bạn có thể dùng địa chỉ này để truy cập trong mạng LAN

Trả lời

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 *