Skip to content

event/ hackathons management app using django with rewarding feature(🌟)

License

Notifications You must be signed in to change notification settings

Hk669/HacksArena

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

55 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

HacksArena - Event App

HacksArena is an event management application designed to streamline the organization and participation in hackathons. Whether you are hosting a hackathon or looking to participate, HacksArena provides a centralized platform to manage events, connect with participants, and stay updated on upcoming hackathons. the application is completely built on Azure postgresSQL with Django.

  • Star the repo if found useful 🌟

New feature

Points System 🌟

  • Now, every action in HacksArena comes with a reward:

    • Share your wisdom with a blog? Earn 35🌟
    • Log in and stay connected? Grab 10🌟
    • Register for an event? Score a whopping 40🌟
    • Submit a project? Get ready for 100🌟

Blog CKeditor

  • for more detailing of the blog content
  • all the tex features are updated

Social Media Share

  • Twitter
  • Whatsapp

Slug Field

  • added the slug for the url to avoid the ids

Features

  • User Registration and Authentication:

    • Users can create accounts on HacksArena.
    • Social account login support for GitHub and Google.
    • Password setting for users who sign up with social accounts.
  • Event Management:

    • Hosts can create and manage hackathon events.
    • Participants can explore and register for upcoming hackathons.
  • Event Details:

    • Detailed information about each hackathon, including date, time, location, and description.
  • User Profiles:

    • Participants can create profiles showcasing their skills and interests.
    • Search functionality to find and connect with other users.
  • Blog Management:

    • The code exhibits the capabilities of creating, reading, updating, and deleting blog posts. This enables users to share
    • their experiences, insights, and tips related to hackathons.
  • Implemented redis cache

    • cache for the blog posts
    • events information
  • Search Functionality:

    • Search for hackathons based on titles and descriptions.
    • Search for users based on usernames and names.

Getting Started

Prerequisites

  • Python (version 3.11.5 recommended)
  • Django (version 4.1.13 recommended)
  • Djongo (for MongoDB integration)

Installation

  1. Clone the repository:

    git clone https://github.com/Hk669/HacksArena.git
    cd HacksArena
  2. Install dependencies:

    pip install -r requirements.txt

Configuration

export SECRET_KEY="your-secret-key"
export CLIENT_ID="client-id"
export SECRET_GITHUB="client-secret"

For redis cache

# in the ubuntu

curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg

sudo apt-get update
sudo apt-get install redis

Lastly to start the redis server like so:

sudo service redis-server start

redis-cli
# 127.0.0.1:6379> ping
# PONG
  1. Run migrations:

    python manage.py migrate
  2. Start the development server:

    python manage.py runserver
  3. Access the application at http://127.0.0.1:8000/.

Run on DOCKER

  • Create a file Dockerfile
   FROM python:3

   ENV PYTHONUNBUFFERED 1

   RUN mkdir /hacksarena
   WORKDIR /hacksarena
   COPY . /hacksarena/
   RUN pip install -r requirements.txt
  • Add to docker-compose.yml to Build the Image
   version: '3.9'

   services:
   web:
      build: .
      command: python manage.py runserver 0.0.0.0:8000
      volumes:
         - .:/hacksarena
      ports:
         - "8000:8000"
  • Build the Docker Image:
   # Builds the Docker Image
   docker-compose build

   # Run migrations
   docker-compose run web python manage.py migrate

   # Start the Docker Container
   docker-compose up

After executing these commands, your HacksArena application will be containerized, and the development server will start. Access the application at http://127.0.0.1:8000/.

Note: Containerization allows you to run the application in a consistent and isolated environment, ensuring seamless deployment.

Usage

Account User Profile

  • Edit the user profile

Points Points System

  • Points are displayed on the User profile

Login Page

  1. User Registration:
    • Create an account on HacksArena.
    • Use social accounts (GitHub, Google) for quick registration.

Events 2. Explore Events:

  • Browse upcoming hackathons.
  • View detailed information about each event.

  1. Event Registration:
    • Register for hackathons you're interested in.

Users 4. User Profiles:

  • Create and customize your user profile.
  • Connect with other participants.

Search 5. Search Functionality:

  • Use the search feature to find hackathons or users.

Blogs 6. Blog Management:

  • The code exhibits the capabilities of creating, reading, updating, and deleting blog posts. This enables users to share
  • their experiences, insights, and tips related to hackathons.

License

This project is licensed under the MIT License.

Contact

If you have any queries, encounter issues, or need assistance, feel free to reach out to me.

Email: hrushikesh.dokala@studentambassadors.com

Acknowledgments

  • The project can be used both on sql and also mongoDB.