Bikelane

Bikelane is a full-stack web application for managing users and administration tasks for a bike lane system. It features a React-based admin panel, a user-facing frontend, and an Express.js backend with a MySQL database.

Bikelane is currently WIP - later iterations will focus on improving user experience and adding more features. - and will be a fully hosted web app and not a local one

Project Structure

. ├── backend/ # Express.js backend API
├── frontend_admin/ # React admin panel (Vite + Tailwind CSS)
├── frontend_user/ # React user frontend (Vite + Tailwind CSS)
├── scheme.sql # MySQL database schema and mock data
├── docker-compose.yml # Multi-container orchestration
└── README.md

Features

  • Admin Panel: Manage users, edit user data, and perform admin tasks.
  • User Frontend: User-facing interface (work in progress).
  • Authentication: JWT-based login for admins and users.
  • Theming: Light/dark theme toggle in admin panel.
  • Dockerized: Easy setup with Docker and Docker Compose.
  • MySQL Database: User data storage and management.

Getting Started

Prerequisites

Quick Start with Docker

  1. Clone the repository:
    git clone <your-repo-url>
    cd bikelane
    
  2. Start all services:
    docker-compose up --build
    
    Backend: http://localhost:5002 Admin Frontend: http://localhost:5001 User Frontend: http://localhost:5003 MySQL: localhost:3307
  3. Database: The schema and mock data are in scheme.sql. MySQL root password and DB credentials are set in docker-compose.yml and .env.

Local Development

Backend

  1. Navigate to the backend directory:
     cd backend
     npm install
     npm start
    
    Backend will run on http://localhost:5002

Admin Frontend

  1. Navigate to the admin frontend directory:
    cd frontend_admin
    npm install
    npm run dev
    
    Admin Frontend will run on http://localhost:5001

User Frontend

  1. Navigate to the user frontend directory:
    cd frontend_user
    npm install
    npm run dev
    
    User Frontend will run on http://localhost:5003

Usage

  • Admin Login: Use credentials from the mock data in scheme.sql (e.g., username: test1, password: 1test).
  • User Management: Add, edit, or delete users from the admin panel.
  • Theme Switch: Toggle between light and dark mode in the admin panel.

Technologies

  • Frontend: React, Vite, Tailwind CSS, TypeScript
  • Backend: Express.js, MySQL, JWT (jose)
  • DevOps: Docker, Docker Compose

Contributing

Contributions are welcome! Please fork the repo and submit a pull request.

License

This project is licensed under the MIT License.

Repository: https://git.the1s.de/theis.gaedigk/bikelane

Description
Bikelane is an open source app (currently only a web app), where you can find better routes to travel with your bike.
Readme 712 KiB
Languages
TypeScript 75.3%
JavaScript 22.1%
HTML 1.6%
Dockerfile 0.8%
CSS 0.2%