Skip to content

OS-JKUAT/osj

Repository files navigation

Open Source JKUAT (OSJ)

Welcome to Open Source JKUAT (OSJ), an open-source web platform built by and for JKUAT students. Our mission is to create a vibrant community where students can share resources, collaborate, and engage in university life through a single platform.

Table of Contents

About OSJ

OSJ is designed to address various aspects of university life for JKUAT students. While anyone can sign up, using a JKUAT email grants access to additional features. Our platform provides students with tools to excel academically, socially, and professionally.

Features

  • Blogs & News: Students can publish articles to practice and showcase their writing skills.
  • University Processes & Procedures: Detailed guides on processes not covered by the main JKUAT website (e.g., how to replace your student ID).
  • JKUAT Mapping: Precise maps using Google Maps to navigate the university.
  • Resource Sharing: A place to share notes, assignments, and study materials (e.g., Civil Engineering Class of 2022 resources).
  • StackOverflow-style Q&A: A forum for students to ask and answer academic questions related to exams and assignments.
  • Student Projects: A showcase of projects completed by JKUAT students, with links to LinkedIn profiles for better visibility to potential employers.
  • Events: University-wide event listings for better planning and visibility.
  • JKUSA Section: A space for JKUSA to share important information and updates.
  • Scholarships & Opportunities: A platform for students to discover scholarships, internships, and job opportunities.
  • Clubs & Societies: Explore and join clubs and societies.
  • Accommodation Listings: Find accommodation around the university.
  • AI Integrations: Students can access premium AI tools and applications.
  • E-commerce for Students: A marketplace for students to buy and sell items, from textbooks to household goods.
  • Lost & Found: A section for listing lost and found items.
  • Work Publishing: Students can publish and promote their works.
  • Social: A space for students to interact.
  • General Info: eg premium services that accept jkuat student email.

Tech Stack

OSJ is built using the TALL stack:

  • TailwindCSS: For modern and responsive UI design. Documentation .
  • Alpine.js: Lightweight JavaScript framework for interactivity. Documentation .
  • Laravel: PHP framework powering the backend. Documentation
  • Livewire: For building dynamic, reactive components without a full SPA. Documentation .

Packages in Use

Authentication

  • Laravel Breeze: A simple authentication system that includes login, registration, and password reset functionality with TailwindCSS and Blade components.
  • Laravel Permissions: A package to manage roles and permissions in your Laravel app.
  • Laravel Activity Log: Logs model changes and records the actions taken on your models.
  • Laravel Authentication Log: Tracks the authentication events of users such as login and logout for security purposes.
  • Laravolt Avatar: A package to generate unique avatars based on users' names or email addresses.

UI Components

  • MaryUI: A UI library that provides pre-built components for building consistent and responsive interfaces.
  • Blade Icons: Adds support for using icon sets with Blade components, making it easy to include icons in your app.

Debugging

  • Laravel Debugbar: Displays debugging information such as queries, logs, and requests in the browser.
  • Pulse: A package for real-time monitoring of Laravel applications with metrics.
  • Log Viewer: Helps you view and search through Laravel logs within the browser.

Miscellaneous

Contribution Guidelines

We welcome contributions from students and developers alike. To contribute:

  1. Fork the repository.
  2. Create a new branch (git checkout -b feature-name).
  3. Write clear and concise code with proper documentation.
  4. Submit a pull request (PR) with a detailed description of your changes.
  5. Ensure that all tests pass before submitting your PR.

Contributors will gain valuable real-world experience and build a portfolio while contributing to this meaningful project.

Getting Started

To run the project locally, follow these steps:

Prerequisites

  • Docker Desktop: Laravel Sail runs on Docker, so you need Docker installed and running on your machine. Its available for Windows, macOS, and Linux.

  • Note for Windows Users: If you're using Windows, you'll need WSL 2 (Windows Subsystem for Linux 2). Docker Desktop requires WSL 2 for better performance and compatibility. You can install WSL 2 by following the official Microsoft guide here.

  • Composer (If Not Installed Already): You will need Composer to install Laravel dependencies, including Sail. Composer is a dependency management tool for PHP. You can install or learn more about Composer here.

  • Node.js and npm (If Not Installed Already): learn more here.

Confirm you have docker installed:

docker --version
docker-compose --version
./vendor/bin/sail version
  1. Clone the repository:
    git clone git@github.com:OS-JKUAT/osj.git
  2. Navigate to the project directory:
    cd osj
  3. Install dependencies:
    docker run --rm \
    -u "$(id -u):$(id -g)" \
    -v $(pwd):/var/www/html \
    -w /var/www/html \
    laravelsail/php81-composer:latest \
    composer install
  4. Copy the .env.example file to .env:
    cp .env.example .env
  5. Start Sail by running:
    ./vendor/bin/sail up -d
  6. Generate Application Key:
    ./vendor/bin/sail artisan key:generate
  7. Set Up Database Configuration: Open the .env file and set your database credentials:
    DB_CONNECTION=mysql
    DB_HOST=mysql
    DB_PORT=3306
    DB_DATABASE=osj
    DB_USERNAME=your_username or root
    DB_PASSWORD=your_password
  8. Run Database Migrations:
    ./vendor/bin/sail artisan migrate --seed
  9. Compile Frontend Assets:
    ./vendor/bin/sail npm install
    ./vendor/bin/sail npm run build
    ./vendor/bin/sail npm run dev
  10. Access the Application: Through the provided url by sail access the application or through: http://localhost

#Error pid 62

  1. Kill the process.
  2. Remove left over mysql sock files : sudo rm -f /var/run/mysqld/mysqld.sock

Tips

  • You can create an alias for ./vendor/bin/sail . How to.
  • php artisan < command > format will now be ./vendor/bin/sail artisan < command >.

Learning Laravel

Laravel has the most extensive and thorough documentation and video tutorial library of all modern web application frameworks, making it a breeze to get started with the framework.

You may also try the Laravel Bootcamp, where you will be guided through building a modern Laravel application from scratch.

If you don't feel like reading, Laracasts can help. Laracasts contains thousands of video tutorials on a range of topics including Laravel, modern PHP, unit testing, and JavaScript. Boost your skills by digging into laracasts comprehensive video library.

Security Vulnerabilities

If you discover a security vulnerability within OSJ site/code, please send an e-mail to Lewis via lewiswambugu01@gmail.com. All security vulnerabilities will be promptly addressed.

OSJ Sponsors & Partners

Use the contacts below to see how you can sponsor and or be a partner and the benefits of it.

Contributing

  • Comming soon...

Code of Conduct

In order to ensure that the OSJ community is welcoming to all, our code of conduct is adapted from the Laravel Code of Conduct, please review and abide it.

License

This project is licensed under the MIT License.

Contacts

For more information or to get involved, feel free to contact us:

Join us in building a legacy and creating opportunities for students to sharpen their skills and contribute to the JKUAT community!

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages