A web application for pinning and managing locations across Kenya. Users can create accounts, add locations, view other users' locations, and manage their own pins on an interactive map.
- User authentication (admin and regular users)
- Interactive map interface
- Location management (create, view, edit, delete)
- Role-based access control
- Search and filter locations
- Responsive design
- Backend: Ruby on Rails 8.0
- Frontend: React with Inertia.js
- Styling: TailwindCSS
- Database: SQLite (development), PostgreSQL (production)
- Map Integration: Leaflet
- Build Tool: Vite
- Ruby 3.4.1
- Node.js 18+
- SQLite3
- Git
- Make
- Clone the repository:
git clone https://github.com/Raymond9734/interview_task.git
cd interview_task- Run the complete setup using Make:
make setupThis command will:
- Install all Ruby dependencies
- Install all Node.js dependencies
- Create and setup the database
- Run database migrations
- Seed the database with sample data
- Start the development server:
make start- Visit
http://127.0.0.1:3000in your browser
To stop the server:
make stopor
ctrl + cmake help- Show all available commandsmake setup- Complete project setupmake install- Install all dependenciesmake start- Start the development servermake stop- Stop the development servermake clean- Clean temporary files and logsmake format- Format code using RuboCop
After seeding, you can log in with these credentials or register your own account :
-
Admin User:
- Email: admin@example.com
- Password: password123
-
Regular Users:
- Email: user1@example.com
- Password: password123