u/Confident-Value8203

كان ودي اخش انديه طلابيه بالجامعه

و اساسا جاني عروض من دكاتره يبوني اخش انديه طلابيه

بس المشكله إلي اشوفه بالانديه الطلابيه عندنا

95% اشخاص شغالين جمع شهادات احترافيه بس مهم فاهمين اي شيء

حرفيا مايقدرون يبرمجون شيء اقصى شيء يسويه يحل واجب جافا OOP

هذا اقصى شيء

- كذالك اغلب الي فيه شغالين تصوير بس تصوير

و تباهي و استعراض قدام الجنس الاخر مدري انا داخل نادي طلابي ولا داخل مكان استعراض

- الشيء الثالث

الي يمسك المناصب الكبيره بالنادي الطلابي كلهم مهم فاهمين فيحطون الشغل على ال5% الفاهمين و يحطون الشغل بأسمهم !!

- معضلة لينكد ان كذا واحد بالنادي اشوف بوستاته ب لينكد ان و حسابه تحسه فاهم جدا يوم قابلته للأسف الشديد كله هبد

- الشهادات الاحترافيه

اشوف بحساباتهم شهادات احترافيه كثير قلت اكيد فاهمين ذولا

فجلست اسولف معهم عن موضوع الشهادات طلع وش نظامهم ؟ يجيب نماذج سابقه و كذا و يحفظه و يذاكر بناء عالنماذج و يروح يختبر و ينجح ولا هو فاهم شيء حرفيا

ياخي الوضع غريب + ان الي اشوفه مافي شغل فعلي عندهم يعني تطوير و كذا مافي يبون بس شغل دمشقه و تصوير و استعراض بس

- وضعهم جدا غريب + فيه حركات عليهم احس ماتصلح

وانتم شرايكم ؟

من مر بتجارب ؟

reddit.com
u/Confident-Value8203 — 22 days ago

هذا السكيما كامله "

-- ============================================================
--  نظام إدارة المعهد - Institute Management System
--  PostgreSQL Schema فقط - بدون بيانات
--  الترتيب: Lookup Tables → Core Tables → Dependent Tables
-- ============================================================



-- ============================================================
-- STEP 1: جداول مرجعية مستقلة (لا تعتمد على أي جدول آخر)
-- ============================================================


CREATE TABLE nationalities (
    nationality_id   SERIAL       PRIMARY KEY,
    nationality_name VARCHAR(100) NOT NULL UNIQUE
);


CREATE TABLE chart_of_accounts (
    account_code VARCHAR(20)  PRIMARY KEY,
    account_name VARCHAR(150) NOT NULL,
    account_type VARCHAR(50)  NOT NULL
        CHECK (account_type IN ('Revenue', 'Expense', 'Asset', 'Liability', 'Equity'))
);


CREATE TABLE payment_methods (
    method_id   SERIAL       PRIMARY KEY,
    method_name VARCHAR(100) NOT NULL UNIQUE
);


CREATE TABLE rooms (
    room_id   SERIAL       PRIMARY KEY,
    room_name VARCHAR(100) NOT NULL UNIQUE,
    capacity  SMALLINT     NOT NULL CHECK (capacity > 0)
);


CREATE TABLE categories (
    category_id   SERIAL       PRIMARY KEY,
    category_name VARCHAR(100) NOT NULL UNIQUE
);



-- ============================================================
-- STEP 2: جداول رئيسية تعتمد على الـ Lookup فقط
-- ============================================================


CREATE TABLE students (
    national_id     VARCHAR(20)  PRIMARY KEY,
    first_name      VARCHAR(80)  NOT NULL,
    father_name     VARCHAR(80)  NOT NULL,
    grandfather     VARCHAR(80),
    last_name       VARCHAR(80)  NOT NULL,
    gender          CHAR(1)      NOT NULL CHECK (gender IN ('M', 'F')),
    date_of_birth   DATE         NOT NULL,
    nationality_id  INT          NOT NULL
        REFERENCES nationalities(nationality_id),
    mobile_number   VARCHAR(20),
    guardian_mobile VARCHAR(20),
    email           VARCHAR(150) UNIQUE,
    address         TEXT,
    lead_source     VARCHAR(100),
    admission_date  DATE         NOT NULL DEFAULT CURRENT_DATE,
    academic_status VARCHAR(50)  NOT NULL DEFAULT 'Active'
        CHECK (academic_status IN ('Active', 'Graduated', 'Suspended', 'Withdrawn'))
);


CREATE TABLE teachers (
    teacher_id     SERIAL        PRIMARY KEY,
    full_name      VARCHAR(150)  NOT NULL,
    specialization VARCHAR(100),
    hire_date      DATE          NOT NULL DEFAULT CURRENT_DATE,
    contract_type  VARCHAR(50)   NOT NULL
        CHECK (contract_type IN ('Full-Time', 'Part-Time', 'Freelance')),
    hourly_rate    NUMERIC(10,2) CHECK (hourly_rate >= 0),
    base_salary    NUMERIC(12,2) CHECK (base_salary >= 0),
    teacher_status VARCHAR(50)   NOT NULL DEFAULT 'Active'
        CHECK (teacher_status IN ('Active', 'Inactive', 'Resigned'))
);


CREATE TABLE courses (
    course_code   VARCHAR(20)   PRIMARY KEY,
    course_name   VARCHAR(150)  NOT NULL,
    description   TEXT,
    category_id   INT           NOT NULL
        REFERENCES categories(category_id),
    default_price NUMERIC(12,2) NOT NULL CHECK (default_price >= 0),
    total_hours   SMALLINT      NOT NULL CHECK (total_hours > 0),
    is_active     BOOLEAN       NOT NULL DEFAULT TRUE
);



-- ============================================================
-- STEP 3: جداول تعتمد على أكثر من جدول رئيسي
-- ============================================================


CREATE TABLE groups (
    group_id      SERIAL       PRIMARY KEY,
    course_code   VARCHAR(20)  NOT NULL
        REFERENCES courses(course_code),
    teacher_id    INT          NOT NULL
        REFERENCES teachers(teacher_id),
    room_id       INT
        REFERENCES rooms(room_id),
    start_date    DATE         NOT NULL,
    end_date      DATE,
    schedule_days VARCHAR(100),
    time_slot     VARCHAR(50),
    CONSTRAINT chk_group_dates CHECK (end_date IS NULL OR end_date > start_date)
);


-- Polymorphic: entity_type يحدد إن كان المرجع طالب أو مدرس
CREATE TABLE invoices (
    invoice_id          SERIAL        PRIMARY KEY,
    transaction_date    DATE          NOT NULL DEFAULT CURRENT_DATE,
    doc_type            VARCHAR(50)   NOT NULL
        CHECK (doc_type IN ('Student_Fee', 'Teacher_Payment', 'Other')),
    entity_type         VARCHAR(20)   NOT NULL
        CHECK (entity_type IN ('Student', 'Teacher')),
    entity_reference_id VARCHAR(20)   NOT NULL,
    description         TEXT,
    subtotal            NUMERIC(12,2) NOT NULL CHECK (subtotal >= 0),
    discount            NUMERIC(12,2) NOT NULL DEFAULT 0 CHECK (discount >= 0),
    vat_amount          NUMERIC(12,2) NOT NULL DEFAULT 0 CHECK (vat_amount >= 0),
    net_total           NUMERIC(12,2) NOT NULL
        GENERATED ALWAYS AS (subtotal - discount + vat_amount) STORED,
    payment_status      VARCHAR(30)   NOT NULL DEFAULT 'Unpaid'
        CHECK (payment_status IN ('Unpaid', 'Partial', 'Paid', 'Cancelled'))
);



-- ============================================================
-- STEP 4: جداول تعتمد على كل ما سبق
-- ============================================================


CREATE TABLE enrollments (
    enrollment_id   SERIAL        PRIMARY KEY,
    student_id      VARCHAR(20)   NOT NULL
        REFERENCES students(national_id),
    group_id        INT           NOT NULL
        REFERENCES groups(group_id),
    enrollment_date DATE          NOT NULL DEFAULT CURRENT_DATE,
    final_grade     NUMERIC(5,2)  CHECK (final_grade BETWEEN 0 AND 100),
    attendance_rate NUMERIC(5,2)  CHECK (attendance_rate BETWEEN 0 AND 100),
    UNIQUE (student_id, group_id)
);


CREATE TABLE attendance (
    attendance_id   SERIAL      PRIMARY KEY,
    group_id        INT         NOT NULL
        REFERENCES groups(group_id),
    student_id      VARCHAR(20) NOT NULL
        REFERENCES students(national_id),
    attendance_date DATE        NOT NULL,
    status          VARCHAR(20) NOT NULL DEFAULT 'Present'
        CHECK (status IN ('Present', 'Absent', 'Late', 'Excused')),
    UNIQUE (group_id, student_id, attendance_date)
);


CREATE TABLE payments (
    payment_id   SERIAL        PRIMARY KEY,
    invoice_id   INT           NOT NULL
        REFERENCES invoices(invoice_id),
    method_id    INT           NOT NULL
        REFERENCES payment_methods(method_id),
    amount_paid  NUMERIC(12,2) NOT NULL CHECK (amount_paid > 0),
    reference_no VARCHAR(100),
    deposit_date DATE          NOT NULL DEFAULT CURRENT_DATE
);


-- Polymorphic: reference_id يشير لـ national_id أو teacher_id حسب الـ role
CREATE TABLE users (
    user_id       SERIAL       PRIMARY KEY,
    username      VARCHAR(100) NOT NULL UNIQUE,
    password_hash VARCHAR(255) NOT NULL,
    role          VARCHAR(50)  NOT NULL
        CHECK (role IN ('Admin', 'Teacher', 'Student', 'Accountant', 'Receptionist')),
    entity_type   VARCHAR(20)
        CHECK (entity_type IN ('Student', 'Teacher')),
    reference_id  VARCHAR(20)
);



-- ============================================================
-- STEP 5: Indexes لتسريع الاستعلامات
-- ============================================================


CREATE INDEX idx_students_nationality  ON students(nationality_id);
CREATE INDEX idx_students_status       ON students(academic_status);
CREATE INDEX idx_courses_category      ON courses(category_id);
CREATE INDEX idx_groups_course         ON groups(course_code);
CREATE INDEX idx_groups_teacher        ON groups(teacher_id);
CREATE INDEX idx_enrollments_student   ON enrollments(student_id);
CREATE INDEX idx_enrollments_group     ON enrollments(group_id);
CREATE INDEX idx_attendance_student    ON attendance(student_id);
CREATE INDEX idx_attendance_group_date ON attendance(group_id, attendance_date);
CREATE INDEX idx_invoices_entity       ON invoices(entity_type, entity_reference_id);
CREATE INDEX idx_invoices_status       ON invoices(payment_status);
CREATE INDEX idx_payments_invoice      ON payments(invoice_id);
CREATE INDEX idx_users_role            ON users(role);


-- ============================================================
--  انتهى
-- ============================================================

شرايكم؟ PostgerSQL

reddit.com
u/Confident-Value8203 — 22 days ago

هذا مستند مخصص فقط ل APIs توي منشأه

بس شرايكم وش تنصحون؟

package apisresponse


import (
    "github.com/gin-gonic/gin"
)


func APIs() {
    r := gin.Default()


    r.POST("/login", LogIn_Handule)
    r.POST("/add-student", AddNewStudent_Handule)
    


    r.Run("localhost:8080")
}

+ هذا سويته مخصص للتعامل مع DB postgerSQL

package dbsystem


import (
    "context"
    "fmt"
    apisresponse "nawatserver/APIs_Response"


    "github.com/jackc/pgx/v5/pgxpool"
)


/*
 ----   Func  for Query With DataBase


 Q1 => Add New Student


*/


// Q1
func AddNewStudent_DB(
pool
 *pgxpool.Pool, 
s
 apisresponse.Add_NewStudent) error {
    query := `INSERT INTO students (
        national_id, first_name, father_name, grandfather, last_name, 
        gender, date_of_birth, nationality_id, mobile_number, 
        guardian_mobile, email, address, lead_source, academic_status
    ) VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14)`


    _, err := pool.Exec(context.Background(), query,
        s.NationalID, s.FirstName, s.FatherName, s.Grandfather, s.LastName,
        s.Gender, s.DateOfBirth, s.NationalityID, s.MobileNumber,
        s.GuardianMobile, s.Email, s.Address, s.LeadSource, s.AcademicStatus)


    if err != nil {
        return fmt.Errorf("Error Can not Add New Student : %v \n", err)
    }


    return nil
}
reddit.com
u/Confident-Value8203 — 22 days ago

هاذي نبذه بسيطه في ميزات كثيره و ابي مشورتكم "منصة SaaS متكاملة تهدف إلى أتمتة التواصل مع العملاء وتحسين تجربة الخدمة باستخدام WhatsApp كقناة رئيسية.

تعتمد الفكرة على تحويل واتساب من مجرد وسيلة تواصل إلى نظام إدارة عملاء متكامل (CRM) يمكن من خلاله إدارة المحادثات، الحجوزات، والعمليات اليومية من خلال لوحة تحكم واحدة.

🔹 أبرز المميزات:

  • إدارة جميع محادثات واتساب من خلال داشبورد موحد
  • نظام رد آلي ذكي (Chatbot) قابل للتخصيص حسب طبيعة النشاط
  • إنشاء قوائم تفاعلية (اضغط 1، اضغط 2…) لتوجيه العميل بسرعة
  • نظام حجز مواعيد مدمج (اختيار الخدمة، الموظف، الوقت)
  • تنظيم العملاء وتسجيل بياناتهم تلقائيًا داخل النظام
  • إدارة الموظفين وتوزيع المهام والصلاحيات
  • مناسب للعيادات، الصالونات، مراكز التدريب، والخدمات الاستشارية

🔹 كيف يعمل النظام:

عند تواصل العميل عبر واتساب، يتم الرد عليه تلقائيًا من خلال نظام ذكي يوجهه لاختيار الخدمة المطلوبة، ثم يمكنه إتمام الحجز أو الاستفسار بسهولة. جميع البيانات يتم حفظها وتنظيمها داخل لوحة التحكم لسهولة المتابعة والإدارة.

🔹 التقنيات المستخدمة:

  • Backend: Go
  • Frontend: Flutter (Web)
  • Database: PostgreSQL
  • Infrastructure: VPS (Ubuntu Linux)

💡 الهدف من المنصة هو تقليل الاعتماد على الرد اليدوي، تسريع خدمة العملاء، وتنظيم العمليات بشكل احترافي داخل الشركات الصغيرة والمتوسطة."

------------------------------

و الحين كيف اخلي احد يجربه ؟ ابيهم يجربونه بشكل مجاني عشان اخذ ريفيو او مراجعة عليه

حاولت اتواصل ويقولون عندنا احتياج بس للأسف ماجربوه ولا شافوه

لأن صعب اطلق مشروع ساس بشكل رسمي وماخليت احد يجربه مع ان الفايده لهم

اتوقع مستحيل احد يجي يعرض عليك نظام CRM ولا ياخذ منك رسوم شهريه

انا اعرضه بالمجان مقابل كل اسبوع - اسبوعين يعطوني تقرير وش المشاكل + الاحتياج حتى اطور المنصه اكثر ومع ذالك محد استعمله ولا حتى شافوه

وش نصايحكم ؟

انا افكر اكنسل المشروع و اكنسل كل شيء SaaS

reddit.com
u/Confident-Value8203 — 26 days ago