Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. PHP

Membina Permulaan Anda: Yayasan Dashboard

by
Difficulty:IntermediateLength:LongLanguages:
This post is part of a series called Building Your Startup With PHP.
Building Your Startup: Sending Reminders
Building Your Startup: Improving the Mobile Web

Malay (Melayu) translation by Meyria (you can also view the original English article)

Final product image
What You'll Be Creating

Tutorial ini adalah sebahagian daripada Membina Permulaan Anda Dengan siri PHP pada Envato Tuts+. Dalam siri ini, saya membimbing anda melalui melancarkan permulaan dari konsep ke realiti menggunakan aplikasi Perancang Mesyuarat saya sebagai contoh kehidupan sebenar. Setiap langkah di sepanjang jalan, saya akan melepaskan kod Perancang Mesyuarat sebagai contoh sumber terbuka yang boleh anda pelajari. Saya akan juga menangani isu-isu berkaitan dengan permulaan perniagaan yang timbul.

Seperti Mesyuarat Perancang menghampiri pelancaran alpha, kita memerlukan satu cara untuk menangani permintaan sokongan dengan pengguna dan memantau aktiviti. Dalam erti kata lain, kita perlu membina papan pemuka pentadbiran dengan pengurusan pengguna dan pelaporan. Dalam perbincangan dengan penasihat, kami membincangkannya apabila saya mendekati calon pelabur, saya perlu mempunyai data yang sangat baik yang memperincikan kelakuan pengguna dan pertumbuhan perkhidmatan.

Dalam episod hari ini, kami akan membina asas untuk papan pemuka pentadbiran kami dan mengambil dan membuat beberapa laporan awal langsung dan sejarah. Sebagai contoh, kita akan tahu berapa ramai orang yang mendaftar pada bila-bila masa, berapa banyak mesyuarat yang dijadualkan, dan berapa peratus peserta yang dijemput seperti perkhidmatan yang cukup untuk menyusun mesyuarat mereka sendiri. Sebenarnya sudah cukup menyeronokkan untuk membina barangan ini dan melihat data, walaupun kita pra-pelancaran.

Sekiranya anda belum mencuba Perancang Mesyuarat (dan ingin muncul dalam data agregat sendiri), teruskan dan jadwal mesyuarat pertama anda. Saya mengambil bahagian dalam perbualan komen di bawah, jadi beritahu saya apa yang anda fikirkan! Anda juga boleh menghubungi saya di Twitter @reifman. Saya sangat berminat jika anda ingin mencadangkan ciri atau topik baru untuk tutorial masa depan.

Sebagai peringatan, semua kod Perancang Mesyuarat ditulis dalam Rangka Kerja Yii2 untuk PHP. Jika anda ingin mengetahui lebih lanjut mengenai Yii2, semak siri kami selari Pengaturcaraan Dengan Yii2.

Membina Yayasan Papan Pemuka

Templat Yii Lanjutan

Yii2 menawarkan laman web pejabat depan dan belakang dalam persediaan aplikasi lanjutan. Anda boleh membaca lebih lanjut tentangnya dalam tutorial Envato+ Tuts saya, bagaimana untuk Program dengan Yii2: menggunakan Template permohonan lanjutan. Pada dasarnya, laman web front-end template canggih menyediakan fungsi yang menghadap ke depan, dan tapak back-end dibuat untuk papan pemuka dan tapak pentadbiran perkhidmatan.

Untuk mengaktifkannya, saya hanya perlu menubuhkan tapak Apache dalam persekitaran localhost MAMP saya dan pada pelayan Ubuntu pengeluaran saya. Sebagai contoh, berikut adalah Apache konfigurasi pada pelayan pengeluaran untuk memuatkan /backend/web laman:

Mengkonfigurasi Tapak Akhir Kami

Seterusnya, saya membina susun atur baru untuk tapak belakang berdasarkan tapak front-end, tetapi dengan pilihan menu yang berlainan. Saya memutuskan laman utama akan mengarahkan ke halaman statistik masa nyata. Dan menu tersebut akan menawarkan pautan ke data masa nyata, data dari semalam pada tengah malam dan data sejarah. Saya akan menerangkan sedikit lebih daripada ini apabila kita meneruskan.

Meeting Planner Dashboard - Menu Layout

Berikut ialah \backend\views\layouts\main.php dengan menu:

Membina Laporan Awal

Bagi saya permulaan statistik laporan, saya tertumpu pada mudah data masa sebenar dan data sejarah yang terperinci. Contohnya, data masa nyata akan memberitahu anda bilangan pengguna dan mesyuarat yang dibina pada sistem setakat ini dan status mereka.

Data sejarah akan memberitahu anda bilangan pengguna dan menamatkan Mesyuarat dari semasa ke semasa serta yang lain-lain data yang menarik — terutamanya lengkung pertumbuhan yang saya dan bakal pelabur boleh mengambil berat tentang.

Data Masa-Sebenar

Halaman data masa nyata perlu menunjukkan gambaran secara langsung apa yang sedang berlaku di laman web ini. Pada mulanya, saya ingin tahu:

  • Berapa banyak mesyuarat yang terdapat dalam sistem?
  • Berapa ramai pengguna di sana?
  • Apakah status mereka?

Untuk mencapai matlamat ini, saya telah mencipta model DataController.php dan Data.php belakang. Saya juga mengambil langkah ke hadapan dan bukannya membuat HTML mentah dalam pandangan saya untuk memaparkannya, saya mencipta ActiveDataProviders dari pertanyaan saya dan memberi mereka kepada widget grid Yii; hasilnya kelihatan lebih baik dan lebih mudah untuk membina dan mengekalkan.

Kod ini mengkaji bilangan mesyuarat dalam sistem yang dikumpulkan oleh status mereka:

Kod ini dalam /backend/views/data/current.php memaparkan ia:

Ia kelihatan seperti ini (data adalah kecil kerana tapak belum dilancarkan lagi!):

Meeting Planner Dashboard - Real Time Meeting Data

Kemudian, saya membuat beberapa pertanyaan masa sebenar, dan seluruh halaman kelihatan seperti:

Meeting Planner Dashboard - Real Time Data People and Places

Mengenai Orang Aktif dan Melalui kolum jemputan di atas, jika anda menjemput seseorang ke dalam mesyuarat, kami mengharapkan mereka sebagai pengguna melalui jemputan sehingga mereka mencipta kata laluan atau pautan akaun sosial mereka. Sehingga itu, satu-satunya akses mereka kepada Perancang Mesyuarat adalah melalui pautan undian e-mel dan id pengesahannya.

Jelas sekali, saya akan memperluaskan pilihan pelaporan masa sebenar apabila projek itu berkembang.

Laporan Data Sejarah

Menjana pelaporan sejarah untuk aktiviti sistematik terbukti sedikit lebih terlibat. Saya memutuskan untuk membuat beberapa lapisan pengumpulan data bergantung.

Lapisan bawah adalah jadual UserData yang meringkaskan keadaan aktiviti akaun sejarah seseorang sehingga hari tertentu pada tengah malam. Pada asasnya, kita akan lakukan ini setiap malam.

Lapisan teratas adalah jadual HistoricalData yang membina pengiraannya menggunakan jadual UserData dari malam sebelumnya.

Saya juga perlu menulis kod yang membina dua jadual dari awal kerana perkhidmatan kami agak aktif selama beberapa bulan.

Saya akan membimbing anda melalui bagaimana saya lakukan ini. Hasil yang ternyata agak baik.

Mewujudkan Jadual Pemindahan

Berikut adalah penghijrahan meja untuk UserData-ia mengandungi data yang saya mahu mengira setiap malam untuk membantu pengiraan sejarah:

Sebagai contoh, count_meeting_participant_last30 adalah berapa banyak mesyuarat yang orang ini telah dijemput untuk dalam masa 30 hari yang lepas.

Berikut adalah Jadual pemindahan bagi HistoricalData-hampir semua lajur dalam Jadual ini perlu dikira dari lapisan data yang berbeza:

Dalam perbincangan dengan Penasihat saya, kami menyedari bahawa bakal pelabur akan mahu tahu bagaimana orang akan bertindak balas kepada tapak. Saya telah membuat ukuran untuk metrik dipanggil percent_invited_own_meeting, pendek untuk peratusan pengguna yang dijemput ke mesyuarat pertama mereka yang menyukai perkhidmatan yang cukup untuk menggunakannya untuk menjadualkan mesyuarat mereka sendiri pada masa hadapan. Saya akan mengkaji lebih lanjut tentang pengiraan sedikit lagi di bawah.

Migrasi semua tinggal di /konsol/migrasi. Berikut adalah apa yang kelihatan seperti ketika anda menjalankan pemindahan pangkalan data.

Mengumpul Data Pelaporan

Setiap malam selepas tengah malam, tugas latar belakang akan mengira statistik malam sebelumnya. Inilah kaedah latar belakang:

Saya sediakan pekerjaan cron untuk menjalankan actionOvernight 1:15 AM setiap hari. Nota: Apabila anda memberi tumpuan penuh pengaturcaraan pada hari dan malam permulaan, kerja cron adalah mengenai semua tindakanOvernight yang akan anda dapatkan.

Untuk membina sejarah masa lalu, saya telah mencipta suatu fungsi recalc() sekali. Ini memecahkan jadual dan membina setiap meja seolah-olah ia berlaku sehari pada satu masa.

Nota: Masa berlalu adalah jalan penyelesaian untuk mengecualikan beberapa pengguna awal yang mendaftar sebelum mereka boleh menjadualkan mesyuarat. Saya mahukan data sejarah untuk mencerminkan gambaran terkini aktiviti terkini (kini terdapat beberapa ratus akaun lama tanpa sebarang aktiviti). Saya mungkin akan mengalih keluar ini pada tarikh yang akan datang.

Mengira Jadual Data Pengguna

Berikut ialah kod yang memaparkan jadual UserData setiap malam:

Ia kebanyakannya hanya mengira jumlah pengguna mesyuarat, tempat, rakan-rakan dan dalam sesetengah kes lingkungan julat masa 30 hari yang lepas.

Berikut adalah kod yang mengesan sama ada pengguna ini memilih untuk menjadualkan mesyuarat menggunakan Perkhidmatan selepas telah dijemput:

Mengira HistoricalData

Berikut adalah kod yang memanfaatkan DataPengguna untuk mengisi HistoricalData:

Ia merumuskan jumlah dan mengira peratusan dan purata.

Berikut adalah apa yang produk kelihatan seperti:

Meeting Planner Dashboard - Final Historical Data

Walaupun kita melihat analisis hanya penggunaan pra alpha, data itu menarik, dan potensi kegunaan ini kelihatan sangat baik. Dan tentunya, mudah untuk memperluas pengumpulan dan analisis data menggunakan kod asas yang saya kongsi dengan anda hari ini.

By the way, peratus pengguna jemputan yang berlaku untuk menjadualkan Mesyuarat mereka sendiri adalah kira-kira 9% (tapi ianya dataset kecil).

Anda mungkin tertanya-tanya jika kita boleh Carta kolum ini. Saya berharap untuk menyelesaikannya dalam tutorial susulan, yang sentiasa memerlukan interaksi dengan dewi editorial. Hanya FYI, tidak semua orang berjalan jauh dari perbualan itu. Saya juga akan meminta beliau untuk membenarkan saya menulis tentang ciri pentadbiran seperti melumpuhkan pengguna, mengembalikan kata laluan, dan sebagainya.

Meeting Planner Dashboard - Game of Thrones Melisandre

Jika kamu tidak mendengar lebih banyak daripadaku, ketahuilah bahawa Tuhan Cahaya telah menemukan kegunaan saya.

Apakah Seterusnya?

Seperti yang dinyatakan, saya sedang bekerja keras untuk menyediakan Perancang Mesyuarat untuk pelepasan alpha. Saya terutamanya menumpukan pada penambahbaikan utama dan ciri-ciri yang akan menjadikan pelepasan alpha berjalan lancar.

Saya menjejaki segala-galanya di Asana sekarang, yang akan saya tulis tentang dalam tutorial yang akan datang; ia sangat membantu. Terdapat juga beberapa ciri baru yang menarik yang masih dalam perjalanan mereka. (Sebagai guru yoga, saya fikir Asana adalah nama produk terburuk yang pernah berlaku. Mereka pada dasarnya telah mengambil istilah umum dalam yoga yang disebut āsana atau ah-sana dan menukar sebutan ke sauna-dan meletakkannya dalam video pengenalan mereka. Ia bukanlah perundingan mudah tahun lepas bercakap dengan ahli pasukan pelanggan mengenai apa yang mereka letakkan di sauna dan bercakap dengan yogis mengenai āsana. Tetapi saya menggegarkan.)

Saya juga mula memberi tumpuan lebih lanjut mengenai usaha pengumpulan pelaburan yang akan datang dengan Perancang Mesyuarat. Saya baru mula bereksperimen dengan WeFunder berdasarkan pelaksanaan peraturan crowdfunding SEC yang baru. Sila pertimbangkan mengikuti profil kami. Saya juga akan menulis lebih lanjut mengenai ini dalam tutorial masa depan.

Sekali lagi, semasa anda sedang menunggu untuk lebih banyak episod, jadwal mesyuarat pertama anda dan cuba templat dengan rakan anda dengan peti mel Gmail. Juga, saya akan menghargai jika anda berkongsi pengalaman anda di bawah komen, dan saya sentiasa berminat dengan cadangan anda. Anda juga boleh menghubungi saya di Twitter @reifman secara langsung. Anda juga boleh menyiarkannya di laman sokongan Mesyuarat Perancang.

Tonton tutorial yang akan datang dalam Membina Permulaan Anda Dengan siri PHP.

Pautan Berkaitan

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.