Code Monkey home page Code Monkey logo

okul's Introduction

Okul - School Listing Project

Okul is a web application that allows users to create an account, receive email confirmations, list schools, and add them to their favorites. The backend of the application is built using Golang and Fiber for the server, and it uses Postgres as the database. The frontend is developed with React.

Table of Contents

Getting Started

Prerequisites

Before you start, make sure you have the following installed on your system:

Installation

  1. Clone the repository:
git clone https://github.com/k61b/okul.git
cd okul
  1. Create a config.dev.yml configuration file in the config directory like config.prod.yml

  2. Install dependencies:

# Backend (Golang/Fiber)
go mod tidy

# Frontend (React)
cd frontend
npm install

Configuration

The project uses a YAML configuration file (config.dev.yml) for environment-specific settings. Make sure to provide appropriate values for the keys in this file, especially the database connection details, JWT secret, and email credentials.

Usage

Starting the Server

  1. Start the Postgres database.

  2. Migrate the database schema:

# Manually run the migration file
  1. Start the Golang server:
make run

Running the Frontend

In a separate terminal window:

cd client
npm run dev

The frontend will be accessible at http://localhost:3000.

Features

  • User authentication with email confirmation.
  • Listing schools with details.
  • Adding schools to favorites.
  • Responsive design for both desktop and mobile.

Contributing

Contributions are welcome! Feel free to open an issue or create a pull request.

License

MIT

okul's People

Contributors

k61b avatar yusufakcekoce avatar

Stargazers

Samet Palitci avatar  avatar  avatar

Watchers

 avatar

okul's Issues

Forget password

If the user forgot her password, we will send a password reset e-mail and the user will be able to reset her password when she returns to the application with the redirect in that e-mail.

school detail

Where the school's information will be. Separate jobs will be opened for information such as maps to be added later.

Favorite school

Here the user will be able to add schools to favourites.

We will create a separate table for favorites and collect the favorites there.

Like this:

CREATE TABLE IF NOT EXISTS favorites (
    id SERIAL PRIMARY KEY,
    user_id INT REFERENCES users(id) ON DELETE CASCADE,
    school_id INT REFERENCES schools(id) ON DELETE CASCADE,
    created_at TIMESTAMPTZ DEFAULT NOW()
);

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.